我最近在项目中使用了 Compose。\n但是,我觉得 LazyColumn 的工作方式与 xml 有很大不同。
\n特别是在创建列表时,我想填充topBar和footer之间的剩余空间,但我找不到方法。
\n下面是我想要实现的页面的简化版本。
\n\ntopBar 固定在顶部,项目列表绘制在其下方。最后,附上 FooterView。可滚动区域包括itemList和FooterView。
\n使用xml时,我将RecyclerView放在nestedScrollView中,并将权重设置为1。然后\xe2\x80\x8b\xe2\x80\x8b列表的区域展开,页脚自动推到最后。
\n但是,在 Compose 中使用 LazyColumn 时,由于 LazyListScope 的原因,列表的范围无法扩展。
\n如果不使用lazyColumn并且权重设置为1,则部分项目列表不可见。或者,如果不使用lazyColumn并且没有给出权重,则页脚不会附加到底部。
\n最近我花了大部分时间试图解决这个问题。\n我需要一些关于如何实现这样的布局的帮助。谢谢。
\n您可以设置verticalArrangement并将Arrangement.SpaceBetween所有顶部视图放入一项中,将所有底部视图放入另一项中。
不幸的是,您的物品可能不会通过这种方法被回收。
Column(modifier = Modifier.fillMaxSize()) {
TopBar()
LazyColumn(
verticalArrangement = Arrangement.SpaceBetween,
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier
.fillMaxWidth()
.weight(1F)
) {
item {
//All top views
}
item {
//Bottom views
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3703 次 |
| 最近记录: |