Android Compose-Button和TextButton的使用

682 阅读2分钟

1、Buttons

ButtonJetpack Compose 库中的基础组件,用于创建用户可以通过触摸或点击来与之交互的按钮。

Compose 中有 5 种类型的 Button

  • Filled button:纯色填充按钮。用以突出主要功能,类似 “提交” “保存” 等按钮。阴影效果突出了按钮的重要性。
  • Filled tonal button:背景色会随着 Surface 变化而变化的按钮。用来表示重要功能的按钮,但 Filled button 在视觉上更具冲击力。
  • Elevated button:有阴影效果的按钮。与 Filled tonal button 类似,设置 elevation 值显示阴影效果。
  • Outlined button:有边框无背景色的按钮。用以次要功能的功能按钮,类似 “取消” “返回” 等。
  • Text button:没有边框没有填充色的按钮。用以不怎么重要的功能按钮,类似 “链接” 等。

下面是 5 个类型的按钮效果。

图片.png

默认的 Button composable 是 Filled button ,其他各类型的 Button composables 分别是:FilledTonalButton OutlinedButton ElevatedButton TextButton

ae745d1625b6ea8b544f7cf2fb45593.png

2、TextButton的使用:

Column(modifier = Modifier.fillMaxWidth(), verticalArrangement = Arrangement.Center) {
   Button(onClick = {
       Log.d("lyy","点击按钮一")
   }) {
       Text(text = "我是按钮一")
   }

    TextButton(onClick = {
        Log.d("lyy","点击按钮二")
    }) {
        Text(text = "我是按钮二")
    }
}

10922faf7f8cc6640d328991e228498.png

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 = "我是按钮三")
    }


}

dd3533ff64aac634a67d3fed3e22238.png

结论:可以自定义TextButton,然后就和Button一样的外观,一样的功能了。