Button这个组件,官方已经实现了Material Design的效果,一般来说我们直接使用这个即可,另外官方也是给我们封装了不同类型的Button,分别为IconButton、TextButton、OutlinedButton、IconToggleButton
先来看一下简单的使用效果:
Button(onClick = { println("点击了按钮") }) {
Icon(Icons.Default.Search, contentDescription = null)
Text(text = "测试")
}
由此可以看到Button中的content内容Icon和Text是按照水平方式排列的(可以认为是Row)
Button构造参数:(简单的直接看注释,对于复杂的做一些介绍)
@Composable
fun Button(
onClick: () -> Unit,//点击事件响应
modifier: Modifier = Modifier,//修饰符(后面再研究)
enabled: Boolean = true,//按钮是否可用
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },//状态变化
elevation: ButtonElevation? = ButtonDefaults.elevation(),//阴影
shape: Shape = MaterialTheme.shapes.small,//形状
border: BorderStroke? = null,//边框
colors: ButtonColors = ButtonDefaults.buttonColors(),// 颜色
contentPadding: PaddingValues = ButtonDefaults.ContentPadding,//内容内边距
content: @Composable RowScope.() -> Unit//内容
)
modifier的基本属性介绍请参看:Modifier的基本属性简单介绍
1.elevation 阴影
Button的阴影参数是有有默认值的,我们也可以修改
ButtonDefaults.elevation(defaultElevation,pressedElevation,disabledElevation,hoveredElevation,focusedElevation)
defaultElevation表示默认的阴影
pre