我有 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 = ...)
}
}
}
}
IntrinsicSize.Min
分配给您的 Row
,以便它与其最小子可组合项的高度相匹配:
Row(
modifier = Modifier
.fillMaxWidth()
.height(IntrinsicSize.Min)
) {
//...
}
然后,您可以在
fillMaxHeight
上使用 Column
,而无需将父行推至全高:
Column(
modifier = Modifier
.fillMaxWidth()
.fillMaxHeight(),
Arrangement.SpaceBetween
) {
//...
}
输出: