简单介绍
- 今年android11已经完爆了android10去年的发布会,无论从ai模型上的优化还是jetpack库的升级,都能说是android11的亮点。这里我们主要介绍与学习jetpack的compose是什么,有什么用?
- Compose的使用需要在AS4.2版本(暂时只有preview版,没稳定版)才可以使用。
Compose
Compose是什么
- Compose的宗旨是:用代码书写UI,增强UI复用性,减少xml的书写。就是使用更少的代码、强大的工具和直观的 Kotlin API 简化并加快了 Android 上的界面开发。
Compose怎么用
- Compose只是注解接口,内部原理在自己看懂后,会在往后出一篇介绍原理,现在我们简单介绍如何使用。温馨提示Compose对学习过flutter的开发者来说非常容易入门。
- Compose支持的布局:一、Column(列排列的组件); 二、Row(行排列的组件);三、Statck(叠加的组件)、四、Scaffold(Scaffold、MaterialTheme等是Material Design风格的组件)等。这里简单只写出4个是因为这对于学习过flutter的开发者来说,它们4个已经是非常熟悉的老朋友了。
- 和flutter一样,Compose让开发者可以专心使用代码写开发UI界面,无需再写一份xml代码,缺点就是层级嵌套过深吧。
开始撸代码
//温馨提示:撸Compose的代码,电脑性能要好点,要不然卡成狗屎,因为as也做成实时编译
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MagicTheme {
Scaffold(
backgroundColor = Color.White,
bodyContent = {
listContent()
}
)
}
}
}
}
//主要简单用下flutter这些老朋友写写
@Composable
fun listContent() {
Column(modifier = Modifier.background(Color.DarkGray)) {
Text(text = "测试", style = TextStyle(color = Color.Blue, fontSize = TextUnit.Sp(14)))
Spacer(modifier = Modifier.padding(vertical = 5.dp))
Row {
Text(text = "测试1", style = TextStyle(color = Color.Blue, fontSize = TextUnit.Sp(14)))
Text(text = "测试2", style = TextStyle(color = Color.Blue, fontSize = TextUnit.Sp(14)))
Text(text = "测试3", style = TextStyle(color = Color.Blue, fontSize = TextUnit.Sp(14)))
}
}
}
//Material Design风格
@Composable
fun MagicTheme(
content: @Composable () -> Unit
) {
MaterialTheme(
colors = MagicColors,
typography = typography,
shapes = shapes,
content = content
)
}
####### 最后效果图
总结
- 不要想着把api全部记下来,要看时候直接点击看源码参数,遇到不懂再找官网看下使用,这是我学习flutter最大收获,易上手。
- 这里的Compose只是初略减少下,android亲爹也打算支持flutter的风格了,大家可以抽空玩玩即可。
- 后续打算先出个如何刷新Compose上View的数据文章,主要都是些简单介绍,大家也可以看下面官网学习即可。
学习参考资料:
官网说明:https://developer.android.com/jetpack/compose
官网demo:https://github.com/android/compose-samples