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

Jetpack Compose内部Row中图片无法居中并排显示的问题

问题解决:Compose中Row嵌套Row无法居中并排显示图片的问题

问题原因

你代码里第一个包裹黑色圆点的内部Row设置了Modifier.fillMaxWidth(),这个修饰符会让该Row占据父Row的全部可用宽度,导致后面的所有Row都被挤出屏幕,所以只能看到左侧第一张图。

修复方案

把第一个内部Row的.fillMaxWidth()去掉,换成.wrapContentWidth(),让每个内部Row只占据自身内容的宽度,这样父Row的Arrangement.Center才能正常工作,所有图片就能居中并排显示了。

修复后的代码片段

Row(
    modifier = Modifier
        .padding(start = 21.dp, end = 6.dp, top = 600.dp)
        .fillMaxWidth()
        .absolutePadding(bottom = 100.dp),
    horizontalArrangement = Arrangement.Center
) {
    // 移除fillMaxWidth,换成wrapContentWidth
    Row(
        modifier = Modifier
            .wrapContentWidth()
            .wrapContentHeight()
            .padding(top = 26.dp)
    ) {
        Image(painter = painterResource(id = R.drawable.blackcircle), contentDescription = null,
            modifier = Modifier.width(11.dp).height(11.dp))
    }
    Spacer(modifier = Modifier.width(5.dp))
    Row(
        modifier = Modifier
            .wrapContentHeight()
            .wrapContentWidth()
            .padding(top = 26.dp)
    ) {
        Image(painter = painterResource(id = R.drawable.greycircle), contentDescription = null,
            modifier = Modifier.width(11.dp).height(11.dp))
    }
    Spacer(modifier = Modifier.width(5.dp))
    Row(
        modifier = Modifier
            .wrapContentWidth()
            .wrapContentHeight()
            .padding(top = 26.dp)
    ) {
        Image(painter = painterResource(id = R.drawable.greycircle), contentDescription = null,
            modifier = Modifier.width(11.dp).height(11.dp))
    }
    Spacer(modifier = Modifier.width(5.dp))
    Row(
        modifier = Modifier
            .wrapContentHeight()
            .wrapContentWidth()
            .padding(top = 26.dp)
    ) {
        Image(painter = painterResource(id = R.drawable.greycircle), contentDescription = null,
            modifier = Modifier.width(11.dp).height(11.dp))
    }
}

额外优化建议

其实每个图片不需要单独用Row包裹,直接把Image放在父Row里即可,这样代码更简洁:

Row(
    modifier = Modifier
        .padding(start = 21.dp, end = 6.dp, top = 600.dp)
        .fillMaxWidth()
        .absolutePadding(bottom = 100.dp),
    horizontalArrangement = Arrangement.spacedBy(5.dp), // 用spacedBy替代Spacer,更简洁
    verticalAlignment = Alignment.CenterVertically
) {
    Image(painter = painterResource(id = R.drawable.blackcircle), contentDescription = null,
        modifier = Modifier.width(11.dp).height(11.dp).padding(top = 26.dp))
    Image(painter = painterResource(id = R.drawable.greycircle), contentDescription = null,
        modifier = Modifier.width(11.dp).height(11.dp).padding(top = 26.dp))
    Image(painter = painterResource(id = R.drawable.greycircle), contentDescription = null,
        modifier = Modifier.width(11.dp).height(11.dp).padding(top = 26.dp))
    Image(painter = painterResource(id = R.drawable.greycircle), contentDescription = null,
        modifier = Modifier.width(11.dp).height(11.dp).padding(top = 26.dp))
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 09:16:03