我正在尝试创建一个高度至少为 160 dp 的元素,但会在可能的情况下进行缩放以使用所有可用空间。我想这可能比我预期的要困难。
以下内容不起作用,但也许它传达了我想做的事情的想法。
Column(modifier = Modifier.verticalScroll(rememberScrollState()).fillMaxSize) {
Box(modifier = Modifier.weight(1f).sizeIn(minHeight = 160.dp))
Box(modifier = Modifier.height(600.dp))
}
当内容不适合屏幕时,我希望内容可以滚动,并且第一个框的高度为 160 dp。如果屏幕超过 760 dp,我希望第一个框尽可能多地填充空间,而不需要滚动。
答案 0 :(得分:2)
您可以使用BoxWithConstraints
根据可用空间定义自己的内容。
类似的东西:
BoxWithConstraints {
val height = maxHeight
Column(
modifier = Modifier
.background(Color.Red)
.verticalScroll(state = rememberScrollState(0))
.fillMaxSize()
) {
val modifierBox1 : Modifier = if (height > 760.dp)
Modifier.heightIn(height - 600.dp)
else
Modifier.heightIn(160.dp)
Box(
modifier = modifierBox1
.fillMaxWidth()
.background(Color.Blue)
)
Box(
modifier = Modifier
.height(600.dp)
.fillMaxWidth()
.background(Color.Green)
)
}
}