Button
按钮是基本组件,可让用户触发已定义的操作。按钮有 5 种类型。下表介绍了五种按钮类型的外观,以及应在何处使用它们。
类型 |
外观 |
用途 |
---|---|---|
Filled |
纯色背景与对比鲜明的文字。 |
高强调度按钮。这些按钮用于应用中的主要操作,例如“提交”和“保存”。阴影效果突出显示了按钮的重要性。 |
填充色调 |
背景颜色会因 Surface 而异。 |
也适用于主要操作或重要操作。填充的按钮可提供更大的视觉重量,适合“添加到购物车”和“登录”等功能。 |
过高 |
通过阴影脱颖而出。 |
与色调按钮类似。提高 elevation,使按钮看起来更加醒目。 |
Outlined |
具有边框但没有填充。 |
中强调度按钮,其中包含重要但不是主要的操作。这类按钮非常适合与其他按钮搭配使用,用于指示“取消”或“返回”等备选次要操作。 |
文本 |
显示没有背景或边框的文本。 |
低强调度的按钮,非常适合用于不太重要的操作(例如导航链接)或次要功能(例如“了解详情”或“查看详情”)。 |
下图展示了 Material Design 中的五种按钮。
API Surface
onClick
:用户按下按钮时调用的函数。enabled
:如果为 false,此参数会导致按钮显示为不可用且处于非活动状态。colors
:一个ButtonColors
实例,用于确定按钮中使用的颜色。contentPadding
:按钮内的内边距。
填充按钮
填充的按钮组件使用基本 Button
可组合项。默认情况下,它会填充纯色。以下代码段演示了如何实现该组件:
@Composable fun FilledButtonExample(onClick: () -> Unit) { Button(onClick = { onClick() }) { Text("Filled") } }
此实现如下所示:
填充色调按钮
填充色调按钮组件使用 FilledTonalButton
可组合项。默认情况下,它会填充色调颜色。
以下代码段演示了如何实现该组件:
@Composable fun FilledTonalButtonExample(onClick: () -> Unit) { FilledTonalButton(onClick = { onClick() }) { Text("Tonal") } }
此实现如下所示:
轮廓按钮
轮廓按钮组件使用 OutlinedButton
可组合项。默认情况下,它会显示轮廓。
以下代码段演示了如何实现该组件:
@Composable fun OutlinedButtonExample(onClick: () -> Unit) { OutlinedButton(onClick = { onClick() }) { Text("Outlined") } }
此实现如下所示:
凸起按钮
外凸按钮组件使用 ElevatedButton
可组合项。默认情况下,它具有表示高度效果的阴影。请注意,它本质上是一个带阴影的外轮廓按钮。
以下代码段演示了如何实现该组件:
@Composable fun ElevatedButtonExample(onClick: () -> Unit) { ElevatedButton(onClick = { onClick() }) { Text("Elevated") } }
此实现如下所示:
文本按钮
文本按钮组件使用 TextButton
可组合项。在被按下之前,它只会显示文本。默认情况下,它没有实心填充或轮廓。
以下代码段演示了如何实现该组件:
@Composable fun TextButtonExample(onClick: () -> Unit) { TextButton( onClick = { onClick() } ) { Text("Text Button") } }
此实现如下所示: