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
相关产品推荐
相关产品推荐

