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

如何让Row中的Composable与其他Composable等高?

解决Compose中Row内组件等高问题

你遇到的问题根源在于:如果Row的父布局是fillMaxHeight(),Row会默认拉伸到父布局高度,此时给Foo加fillMaxHeight()会让它填满整个屏幕,而非跟随Bar的高度。核心解决思路是让Row的高度由最高子组件(Bar)决定,再让Foo填充Row的高度,具体操作如下:

1. 限制Row高度为子组件最大高度

给Row添加Modifier.wrapContentHeight(),强制Row仅包裹子组件的最大高度,避免被父布局拉伸:

Row(
    modifier = Modifier.wrapContentHeight()
) {
    Foo(modifier = Modifier.fillMaxHeight())
    Bar(cellSize = 80)
}

2. 让Foo填充Row高度

给Foo传入Modifier.fillMaxHeight(),让它填满Row的高度(即Bar的高度)。同时要确保Foo内部的根组件也填充自身高度,比如Foo的实现示例:

@Composable
fun Foo(modifier: Modifier = Modifier) {
    Box(
        modifier = modifier.fillMaxHeight(),
        contentAlignment = Alignment.Center // 可选,让内部内容居中显示
    ) {
        // 你的自定义内容
        Text("Foo 内容")
    }
}

这样处理后,Row的高度会由Bar的cellSize决定,Foo会自动拉伸到和Bar完全等高,不会再出现填满屏幕的问题。

内容的提问来源于stack exchange,提问作者Kun.tito

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 07:36:27