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

如何让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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:07:04