1、Buttons
Button 是 Jetpack Compose 库中的基础组件,用于创建用户可以通过触摸或点击来与之交互的按钮。
Compose 中有 5 种类型的 Button。
- Filled button:纯色填充按钮。用以突出主要功能,类似 “提交” “保存” 等按钮。阴影效果突出了按钮的重要性。
- Filled tonal button:背景色会随着 Surface 变化而变化的按钮。用来表示重要功能的按钮,但 Filled button 在视觉上更具冲击力。
- Elevated button:有阴影效果的按钮。与 Filled tonal button 类似,设置 elevation 值显示阴影效果。
- Outlined button:有边框无背景色的按钮。用以次要功能的功能按钮,类似 “取消” “返回” 等。
- Text button:没有边框没有填充色的按钮。用以不怎么重要的功能按钮,类似 “链接” 等。
下面是 5 个类型的按钮效果。
默认的
Buttoncomposable 是 Filled button ,其他各类型的 Button composables 分别是:FilledTonalButtonOutlinedButtonElevatedButtonTextButton。
2、TextButton的使用:
Column(modifier = Modifier.fillMaxWidth(), verticalArrangement = Arrangement.Center) {
Button(onClick = {
Log.d("lyy","点击按钮一")
}) {
Text(text = "我是按钮一")
}
TextButton(onClick = {
Log.d("lyy","点击按钮二")
}) {
Text(text = "我是按钮二")
}
}
3、Button和TextButton的区别
Jetpack Compose提供了多种按钮样式,以便在不同的场景和上下文中使用。其中,Button和TextButton都是最常用的两种类型。然而,尽管它们的功能类似,但在设计和用途上,它们确实有所不同。
-
Button:这是一个标准的填充按钮,它有一个可见的背景和可选的边框。它们的设计更加明显和引人注目,因此更适合主要操作或需要用户注意的功能。 -
TextButton:这是一个文本按钮,没有明显的背景,只有文本。它们的设计更为简洁和微妙,使它们更适合次要操作或不太需要用户注意的功能。
4、自定义TextButton
Column(modifier = Modifier.fillMaxWidth(), verticalArrangement = Arrangement.Center) {
Button(onClick = {
Log.d("lyy","点击按钮一")
}) {
Text(text = "我是按钮一")
}
TextButton(onClick = {
Log.d("lyy","点击按钮二")
}) {
Text(text = "我是按钮二")
}
//自定义TextButton
TextButton(onClick={
Log.d("lyy","点击按钮三")
},
colors= ButtonDefaults.textButtonColors(
backgroundColor = Color.Red,
contentColor = Color.White
)){
Text(text = "我是按钮三")
}
}