Android Compose - 如何匹配 Box 中并排居中的可组合项的高度

问题描述 投票:0回答:1

我有 2 个可组合项,垂直居中于

Row
,居中于
Box
。 生成盒子的左侧,可以是任意高度。

问题是右侧高度永远不会拉伸到相同的高度 和左侧,所以

TextButton
不是该侧底部的。

如果我制作我的

Column
fillMaxHeight()
,则整个
Row
会拉伸到最大屏幕尺寸 生成的内容下面有一个空格。

如果我将

Spacer
weight(1f)
一起使用,则整行会拉伸到屏幕的整个高度 (
Box
),并且会发生与使用
fillMaxHeight()
Column

相同的问题

我希望右侧的

Column
具有左侧
Box
的高度 (或者如果左侧较小,则基于右侧包装的内容大小) 这一切都垂直居中于包裹
Box
Row

Box (
    Modifier.weight(contentWeight).fillMaxWidth(),
    contentAlignment = Alignment.Center
){
    Row(
        modifier = Modifier.fillMaxWidth()
    ) {
        Box(modifier = Modifier.weight(1f)) {
            // a dynamically generated layout with non fixed height
        }
        Column(
            modifier = Modifier
                .fillMaxWidth(),
                .weight(1f),
            Arrangement.SpaceBetween
        ) {
            Text( text = ....)
            TextButton ( ...){
                Text (text = ...)
            }
        }
    }
}

android layout android-jetpack-compose android-jetpack
1个回答
0
投票

您可以将

IntrinsicSize.Min
分配给您的
Row
,以便它与其最小子可组合项的高度相匹配:

Row(
    modifier = Modifier
        .fillMaxWidth()
        .height(IntrinsicSize.Min)
) {
    //...
}

然后,您可以在

fillMaxHeight
上使用
Column
,而无需将父行推至全高:

Column(
    modifier = Modifier
        .fillMaxWidth()
        .fillMaxHeight(),
    Arrangement.SpaceBetween
) {
    //...
}

输出:

Screenshot

© www.soinside.com 2019 - 2024. All rights reserved.