前言
除了布局组件外,Jetpack Compose 还提供了一系列其他常用的 UI 组件。
https://developer.android.google.cn/jetpack/compose/components?hl=zh-cn
https://developer.android.google.cn/courses/pathways/compose?hl=zh-cn
占位
1 | Spacer(modifier = Modifier.height(16.dp)) |
分割线
这个写法已经废弃
1 | Divider( |
新写法
横线
1 | HorizontalDivider( |
渐变色
1 | HorizontalDivider( |
纯色
1 | HorizontalDivider( |
文本
Text(文本):
1 | Text("Hello, World!") |
文本居中
1 | Text( |
设置行数
1 | Text( |
按钮
https://www.psvmc.cn/article/2024-03-13-jetpack-compose-button.html
文本输入
https://www.psvmc.cn/article/2024-03-13-jetpack-compose-textfield.html
图片
https://www.psvmc.cn/article/2024-03-13-jetpack-compose-image.html
加载中动画
1 | CircularProgressIndicator(modifier = Modifier.size(30.dp)) |
消息框
Toast
组件化
1 | import android.annotation.SuppressLint |
调用
1 | var showToast by remember { mutableStateOf(false) } |
组件内方法
1 | val context = LocalContext.current |
Snackbar
基本示例
1 |
|
使用snackbarHost
1 | val scope = rememberCoroutineScope() |
对话框
1 | Dialog(onDismissRequest = { /* 关闭对话框事件 */ }) { |
隐藏键盘
1 | val keyboardController = LocalSoftwareKeyboardController.current |
加载网页
1 |
|
视频播放器
1 | import android.net.Uri |
实战-登录页面
1 |
|
调用
1 | LoginScreen { name, pwd -> |
组件提取
因为Compose组件本质都是方法,所以可以使用提取方法来提取组件
快捷键:Ctrl+Alt+M