【发布时间】:2021-10-01 15:22:05
【问题描述】:
我尝试查找此内容,但找不到任何相关内容。
我想在可垂直滚动的Box 内有一个“全尺寸”Column,而这种组合似乎不起作用。当我将verticalScroll(rememberScrollState()) 修饰符添加到Box 时,它似乎“禁用”了Column 的fillMaxSize() 修饰符
以下代码没有按预期工作:
MyTheme {
Box(
modifier = Modifier
.fillMaxSize()
.border(2.dp, Color.Green) //for visual effect only
.verticalScroll(rememberScrollState())
) {
Column(
modifier = Modifier
.fillMaxSize()
.padding(2.dp)
.border(2.dp, Color.Red) //for visual effect only
) {
//some content
}
}
}
预期结果:Box 和 Column(绿色和红色边框)都填满了整个屏幕。
实际结果: Box 填满屏幕,但Column 没有填满高度
但是,如果我从 Box 中删除 verticalScroll() 修饰符,我会得到预期的结果:
MyTheme {
Box(
modifier = Modifier
.fillMaxSize()
.border(2.dp, Color.Green) //for visual effect only
//verticalScroll modifier removed
) {
Column(
modifier = Modifier
.fillMaxSize()
.padding(2.dp)
.border(2.dp, Color.Red) //for visual effect only
) {
//some content
}
}
}
【问题讨论】:
-
尝试将verticalScroll修饰符放在内栏。由于它已经填满了盒子的最大尺寸,我不明白你为什么要在盒子上放一个垂直滚动。
-
@Rafsanjani 这解决了我的具体问题,所以谢谢,但我的意图也是了解为什么会发生这种情况。所以即使我使用了你的解决方案,我也接受了 Philip Dukhov 的回答
标签: android kotlin android-jetpack-compose