如何让Jetpack Compose中Row内的Card组件拉伸填满屏幕宽度?
解决方案
要让1-4个Card组件在Row中均匀拉伸填满屏幕宽度,给每个Card添加weight(1f)修饰符即可,它会让所有带weight的组件平分Row的可用水平空间。
修改后的代码:
Row( modifier = Modifier .padding(contentPadding) .fillMaxSize() // 可移除horizontalArrangement,weight已能让组件平分空间 ) { // 此处可替换为1-4的任意数量 repeat(2) { Card(modifier = Modifier .weight(1f) // 核心修饰符:平分水平空间 .fillMaxHeight() // 保持高度填满Row .padding(horizontal = 4.dp) // 可选:添加卡片间距,优化视觉效果 ) { Text(text = "Hello", modifier = Modifier.padding(16.dp)) } } }
关键说明:
weight(1f):所有Card设置相同权重值,Row会将可用水平空间平均分配给它们,无论数量是1还是4,都能自动适配宽度。- 若不需要卡片间距,可直接移除
.padding(horizontal = 4.dp)。 - 原代码中的
Arrangement.SpaceEvenly可删除,因为weight已让组件占据全部可用空间,该排列属性的作用会被覆盖。
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

