Button
Compose 中的Button,对标Button ,是一个具有点击事件的一个控件,跟Android现有库中的Button的区别在于没有文本属性,这是因为,Compose 的设计理念在于组合优于继承,既然你需要显示文本,就给Compose的Button设置一个Text作为子控件就可以了,所以Android现有库中的Button相当于Compose中的Button+Text
Button属性列表
属性 | 作用 | 示例 |
---|---|---|
onClick | 点击事件 | {} |
content | button的内容 | Text() |
contentPadding | 内容与边界的距离 | PaddingValues(100.dp) |
enabled | true | 设置按钮是否可用 |
fontWeight | 字体粗细 | FontWeight.Medium |
shape | 设置按钮形状 | CutCornerShape(30) 切角形状 /RoundedCornerShape(50)圆角形状 |
elevation | 按钮可点击状态下的阴影 | 目前Alpha10版本无法正常导包 |
disabledElevation | 按钮不可用状态下的elevation | 目前Alpha10版本无法正常导包 |
代码实例
class ButtonActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
ShowButton()
}
}
@Preview
@Composable
fun ShowButton() {
Button(
onClick = {
toast(ButtonActivity::class.java.simpleName)
},//点击事件
modifier = Modifier
.padding(10.dp)
.fillMaxWidth()
.background(Color.Transparent),//修饰
border =
// BorderStroke(2.dp, Color.White),//边框颜色
BorderStroke(
10.dp,
Brush.radialGradient(listOf(Color.White, Color.Black))
),//边框颜色 Brush 中的方法对应
content = { Text(text = "Hell-ppppppppppppppppppppppffffffffffffffpppppp") },//内容
contentPadding = PaddingValues(100.dp),//当内容过长的时候才会有效,
enabled = true,//设置按钮是否可用
shape = CutCornerShape(30), //切角按钮
// RoundedCornerShape(50),//RoundedCornerShape修改按钮形状 如果参数是dp就是修改角度大小 如果是int是百分比
// elevation ,按钮可点击状态下的 elevation
// disabledElevation 按钮不可用状态下的elevation
)
}
}