Compose Button

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
        )
    }
}
运行效果:
device-2021-02-02-225022.png

OutlinedButton TextButton 这两个控件目前没有发现与Button有什么区别

你可能感兴趣的:(Compose Button)