fillMaxSize modifier not working when combined with VerticalScroll in Jetpack Compose(在Jetpack Compose中与VerticalScroll结合使用时,Fill MaxSize修饰符不起作用)
问题描述
我试着查了一下,但找不到任何相关的东西。
我想在可垂直滚动的Box
内放置&Full Size&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
包装内容的高度,可以拉伸到很长,所以作用域有Constraints.Infinity
formaxHeight
约束。
发件人fillMaxHeight
documentation
如果传入的最大高度为Constraints.Infinity,则此修饰符将不起作用。
这就是您需要显式设置height
的原因。
考虑切换到LazyColumn
(出于此目的而使用fillParentMaxHeight()
)或切换到Pager
(这是专门针对此类情况制定的)。
还有,就像@AdrianK指针一样,使用常规的scrollable
可以用BoxWithConstraints
包装您的视图,并使用maxHeight
设置您的视图的height
。
BoxWithConstraints {
Box(
modifier = Modifier
.fillMaxSize()
.border(2.dp, Color.Green)
.verticalScroll(rememberScrollState())
) {
Column {
repeat(2) {
Column(
modifier = Modifier
// fillMaxWidth instead of fillMaxSize
.fillMaxWidth()
// explicit height modifier
.height(this@BoxWithConstraints.maxHeight)
.padding(2.dp)
.border(2.dp, Color.Red)
) {
//some content
}
}
}
}
}
结果:
这篇关于在Jetpack Compose中与VerticalScroll结合使用时,Fill MaxSize修饰符不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在Jetpack Compose中与VerticalScroll结合使用时,Fill MaxSize修饰符不起作用
- 想使用ViewPager,无法识别android.support.*? 2022-01-01
- android 4中的android RadioButton问题 2022-01-01
- 在测试浓缩咖啡时,Android设备不会在屏幕上启动活动 2022-01-01
- Android - 我如何找出用户有多少未读电子邮件? 2022-01-01
- 用 Swift 实现 UITextFieldDelegate 2022-01-01
- Android - 拆分 Drawable 2022-01-01
- Android viewpager检测滑动超出范围 2022-01-01
- 如何检查发送到 Android 应用程序的 Firebase 消息的传递状态? 2022-01-01
- MalformedJsonException:在第1行第1列路径中使用JsonReader.setLenient(True)接受格式错误的JSON 2022-01-01
- 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout 2022-01-01