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修饰符不起作用
基础教程推荐
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01