如何在Jetpack Compose中使惰性列占据完整的高度?

19

我正在尝试使用compose lazy column,希望我的lazy column的每个项目都具有最大高度,但我尝试了下面的代码,结果并不符合预期。

代码

val itemsList: List by mainScreenViewModel.portfolioItems.observeAsState(listOf())

Box(modifier = Modifier.fillMaxSize()) {
    Column(modifier = Modifier.matchParentSize()) {
        LazyColumn(
            content = {
                itemsIndexed(itemsList) { index, item ->
                    Text(text = "Hello", modifier = Modifier.fillMaxHeight())
                }
            },
        )
}
}
1个回答

37

fillMaxHeight()/fillMaxWidth()对于垂直和水平滚动列表分别不能正确工作。相反,我们可以分别使用LazyItemScope中提供的fillParentHeight()fillParentWidth()

示例代码:

LazyColumn(
     modifier = modifier.fillMaxHeight()) {
         items(count = 3) {
             Column(modifier = Modifier.fillParentMaxHeight()) {
                 Text(
                     text = "Item $it", 
                     modifier = Modifier.fillMaxWidth()
                 )
                 Divider(Modifier.height(2.dp))
            }
     }
}

更多详情请参考:https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyItemScope


5
对我没用。 - Rahul Rastogi
尽管我只想将文本显示在中央,但它正在键盘下方显示,顶部和底部有很多空白空间。 - user924

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接