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

Jetpack Compose:Row布局中两个按钮高度一致问题

解决Jetpack Compose中Row内按钮高度不一致问题

你遇到的问题是因为Button组件默认带有最小高度约束:当第一个按钮文本仅一行时,其高度未达到Button的默认最小高度,但第二个按钮的fillMaxHeight()会优先遵循自身的最小高度约束,导致两者高度不一致。

可以通过以下两种方式修复:

方式一:让第二个按钮跟随Row的固有高度

给第二个按钮添加height(IntrinsicSize.Min)修饰符,强制它采用Row的固有高度,忽略自身的最小高度约束:

@Composable
fun IntrinsicTest() {
    Row(Modifier.height(IntrinsicSize.Min)) {
        Button(
            onClick = {}
        ) {
            Text("button1")
        }

        Button(
            onClick = {},
            modifier = Modifier
                .fillMaxHeight()
                .height(IntrinsicSize.Min)
        ) {
            Text("button2")
        }
    }
}

方式二:统一两个按钮的高度约束

给第一个按钮也添加fillMaxHeight(),让它填充Row的高度,而Row的高度由第一个按钮的固有内容高度决定,这样两个按钮会自动保持一致:

@Composable
fun IntrinsicTest() {
    Row(Modifier.height(IntrinsicSize.Min)) {
        Button(
            onClick = {},
            modifier = Modifier.fillMaxHeight()
        ) {
            Text("button1")
        }

        Button(
            onClick = {},
            modifier = Modifier.fillMaxHeight()
        ) {
            Text("button2")
        }
    }
}

这两种方式都能确保无论第一个按钮文本是一行还是多行,两个按钮的高度始终保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:47:14