Jetpack Compose - Button
Compose系列文章,请点原文阅读。原文:是时候学习Compose了!
关于Button官方给出了很多种样式,有Button、TextButton、OutlinedButton、IconButton、IconToggleButton等,还有一个RadioButton我们会单独开文章去讲解。
1、Button
1.1、属性一览
我们先来看下 Button 的属性,链接在这里:
@Composable fun Button(
onClick: () -> Unit,
modifier: Modifier = Modifier,
enabled: Boolean = true,
interactionState: InteractionState = remember { InteractionState() },
elevation: ButtonElevation? = ButtonConstants.defaultElevation(),
shape: Shape = MaterialTheme.shapes.small,
border: BorderStroke? = null,
colors: ButtonColors = ButtonConstants.defaultButtonColors(),
contentPadding: PaddingValues = ButtonConstants.DefaultContentPadding,
content: RowScope.() -> Unit
): Unit
- onClick: () -> Unit
单击按钮的事件回调,如果不提供该回调,那么按钮将变为禁用状态; - modifier: Modifier = Modifier
修饰符 - enabled: Boolean = true
控制按钮的启用状态。如果为false,则该按钮将不可单击; - interactionState: InteractionState = remember { InteractionState() }
表示交互的状态信息,也就是相当于我们之前给按钮设置的各种selector,来实现普通、点击效果等,下文代码详解; - elevation: ButtonElevation? = ButtonConstants.defaultElevation()
按钮的阴影大小效果,设置为null不显示阴影效果,一般我们开发中应该也不会使用这种阴影效果。 - shape: Shape = MaterialTheme.shapes.small
定义按钮的形状及阴影等效果; - border: BorderStroke? = null
设置按钮的边框(目前alpha07版本的设置border后效果并不好,按钮四个角落还会显示出来部分按钮默认的背景色); - colors: ButtonColors = ButtonConstants.defaultButtonColors()
用于在不同状态下设置按钮的背景色以及内容色; - contentPadding: PaddingValues = ButtonConstants.DefaultContentPadding
容器和控件之间的距离值 - content: RowScope.() -> Unit
关于这个参数官方文档居然没有讲解,这个是按钮的内容,什么意思呢?你想想看按钮包含文本信息对吧,也可能包含图标信息吧,所以这个参数就是让你组合你需要的控件的,注意它是横向的。
1.2、使用示例
首先显示一个最简单的Button代码如下,该按钮应用的都是默认配置项:
@Composable
fun ButtonDemo() {
Button(
onClick = { },
) {