本文介绍了列中的填充MaxSize优先级不明确的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要做的是一个固定大小的框,第一个框下面的另一个框将填充剩余的空间。我有以下代码:
Column {
Box(
modifier = Modifier
.background(Color.Red)
.fillMaxSize()
)
Box(
contentAlignment = Center,
modifier = Modifier
.background(Color.Blue)
.height(50.dp)
.fillMaxWidth()
) {
Text(
"hello",
color = Color.White
)
}
}
出于某种原因,底部框的大小是列边界的一半,如果我删除Strong.height(50.dp)
,它将完全消失。我试过了用.wrapContentHeight()
解决第二个问题,但没有运气--看起来像fillMaxSize()
,使它的大小等于Column
,这就是为什么它会将底部的一部分向下推。我希望它在计算其他列子大小后填充剩余的大小-我是不是遗漏了什么?如果我更改框的顺序,它会按预期工作,但我需要底部的框是固定大小的
推荐答案
在这种情况下,应该在视图上使用weight
修饰符,而不是fillMaxSize
(默认情况下weight
已经填充最大大小),这种情况下将在其他视图之后测量:
Column {
Box(
modifier = Modifier
.background(Color.Red)
.weight(1f)
)
Box(
contentAlignment = Center,
modifier = Modifier
.background(Color.Blue)
.fillMaxWidth()
) {
Text(
"hello",
color = Color.White
)
}
}
这篇关于列中的填充MaxSize优先级不明确的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!