You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose:如何设置两个按钮同宽且限制最大宽度?

解决Jetpack Compose中按钮同宽且限制最大宽度的问题

你可以给每个按钮套一层容器(比如Box),让容器承担weight属性并设置最大宽度,再让按钮填充容器宽度,就能实现两个按钮同宽且不会超过最大宽度的效果。

具体代码示例:

Row(
    modifier = modifier
        .fillMaxWidth(0.9f)
        .padding(4.dp),
    horizontalArrangement = Arrangement.SpaceBetween
) {
    // 用Box包裹按钮,控制宽度规则
    Box(
        modifier = Modifier
            .weight(1f)
            .maxWidth(120.dp) // 自定义最大宽度值
            .padding(end = 8.dp) // 按钮间的间距
    ) {
        Button(onClick = { /* 点击逻辑 */ }) {
            Text(stringResource(R.string.previous))
        }
    }

    Box(
        modifier = Modifier
            .weight(1f)
            .maxWidth(120.dp)
    ) {
        Button(onClick = { /* 点击逻辑 */ }) {
            Text(stringResource(R.string.next))
        }
    }
}

逻辑说明

  • weight(1f)让两个Box在Row中平分可用空间,保证容器宽度一致,进而让内部按钮宽度相同;
  • maxWidth限制容器的最大宽度,当屏幕过宽时,容器不会超出设定值,按钮填充容器自然也不会过大;
  • 给Box加内边距可以灵活控制两个按钮之间的间距,比直接给Button加更合理。

如果需要同时限制最小宽度,也可以用widthIn(min = 80.dp, max = 120.dp)替代maxWidth,效果一致。

内容的提问来源于stack exchange,提问作者NullPointerException

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 20:34:51