Jetpack Compose是什么?

Jetpack Compose 是安卓用于构建UI的一种新方式,采用代码而非xml文件方式,写法与Flutter非常相似。

官方主页:https://developer.android.goo...

官方Demo:https://github.com/android/co...

官方入门指导: https://developer.android.goo...

约束条件

  1. Android Studio: 4.0及以上
  2. 支持安卓版本:Android API 21(即5.0)及以上
  3. 必须使用kotlin语言

优点

  1. 代码更少 少了xml,少了activity和xml之间的关联.
  2. 双向绑定 数据变化了,UI就自动变化.

缺点

  1. 含有参数的Composable函数不能直接预览.
  2. Composable函数必须添加@Preview注解才能预览.
  3. 代码修改后,需要重新编译才能预览.
  4. 目前还不完善,相比于Flutter,还处于幼儿园水平.
  5. 相比于xml画页面布局,效率会有降低.

常见控件使用样例

  1. 文本显示
Text(text = "众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。")

  1. 文本输入框
val state = +state { "Text Field to input" }TextField(        value = state.value,        onValueChange = { state.value = it })

  1. 按钮
Button(text = "咬我啊", onClick = { Log.v("test", "被咬了") })

4.弹出框

MaterialTheme {    Column {        val openDialog = +state { false }        Button("Click me", onClick = {            openDialog.value = true        })        if (openDialog.value) {            AlertDialog(                    onCloseRequest = {                        openDialog.value = false                    },                    title = {                        Text(text = "Alert Dialog Title")                    },                    text = {                        Text("Alert Dialog content")                    },                    confirmButton = {                        Button(                                "Confirm",                                onClick = {                                    openDialog.value = false                                })                    },                    dismissButton = {                        Button(                                "Cancel",                                onClick = {                                    openDialog.value = false                                })                    },                    buttonLayout = AlertDialogButtonLayout.Stacked            )        }    }}

  1. 开关
MaterialTheme {    val checkedState = +state { true }    Switch(            checked = checkedState.value,            onCheckedChange = { checkedState.value = it }    )}

  1. 单选框
MaterialTheme {    RadioButton(selected = true,            onSelect = { }    )}

  1. 复选框
MaterialTheme {    val checkedState = +state { true }    Checkbox(            checked = checkedState.value,            onCheckedChange = { checkedState.value = it }    )}

  1. 单选框组
MaterialTheme {    val radioOptions = listOf("A", "B", "C")    val (selectedOption, onOptionSelected) = +state { radioOptions[0] }    RadioGroup(            options = radioOptions,            selectedOption = selectedOption,            onSelectedChange = onOptionSelected    )}

9.图片

Container(modifier = Height(300.dp) wraps Expanded) {    Clip(shape = RoundedCornerShape(4.dp)) {        DrawImage(+imageResource(R.drawable.img_0))    }}

源代码

https://github.com/cxyzy1/Jet...

文章不易,如果大家喜欢这篇文章,或者对你有帮助希望大家多多,点赞,转发,关注 哦。文章会持续更新的。绝对干货!!!

更多相关文章

  1. android之动态新建txt文件与读取
  2. LayoutInflater
  3. git clone代码断点续传解决办法
  4. android 与C/C++混合编程小例子讲解o
  5. Android入门学习_Android获取来电号码
  6. 懒人搭建OpenGrok for Android(安卓)N on Ubuntu 16.04
  7. Android仿QQ复制昵称效果
  8. android 关掉Eclipse的自动代码提示
  9. 隐式Intent解析

随机推荐

  1. Android下检测网络状态 3G WIFI
  2. Android5.0Button字体大小写
  3. android好博
  4. javascript的touchend在android上 执行两
  5. Android Animation动画效果简介
  6. Android 反编译资料2
  7. Android(安卓)FFMPEG 编译脚本
  8. Android获取APP的应用程序名称、包名、图
  9. paypal android VALIDATION_ERROR(statusC
  10. 【android】 conn.getResponseCode(); 返