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 = { },
    ) {
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值