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

