viewpager jetpack compose 中的垂直滚动不起作用
Posted
技术标签:
【中文标题】viewpager jetpack compose 中的垂直滚动不起作用【英文标题】:vertical scroll in viewpager jetpack compose is not working 【发布时间】:2022-01-14 08:12:12 【问题描述】:在使用 Accompanist 的 Horizontal View Pager 中面临垂直滚动问题。无法滚动列 垂直在 HorizontalViewPager 内。因此,请查看代码并更正如何修复它或任何其他解决方案。如果可能,将不胜感激。
HorizontalPager(
count = 10,
modifier = Modifier.fillMaxSize()
) page ->
Column(
modifier = Modifier
.fillMaxWidth()
.fillMaxHeight(),
)
ScoreCardListItem()
Spacer(modifier = Modifier.height(16.dp))
ScoreCardListItem()
Spacer(modifier = Modifier.height(16.dp))
ScoreCardListItem()
Spacer(modifier = Modifier.height(16.dp))
ScoreCardListItem()
Spacer(modifier = Modifier.height(16.dp))
ScoreCardListItem()
Spacer(modifier = Modifier.height(16.dp))
ScoreCardListItem()
Spacer(modifier = Modifier.height(16.dp))
ScoreCardListItem()
使用 Column 时无法垂直滚动。如果尝试使用 LazyColumn 会产生错误。这是伴奏 ViewPager 链接 Accompanist Library
【问题讨论】:
【参考方案1】:使用 LazyColumn 检查
LazyColumn(
modifier = Modifier
.padding(16.dp)
.fillMaxSize()
)
item
ScoreCardListItem()
Spacer(modifier = Modifier.height(16.dp))
ScoreCardListItem()
Spacer(modifier = Modifier.height(16.dp))
ScoreCardListItem()
Spacer(modifier = Modifier.height(16.dp))
ScoreCardListItem()
Spacer(modifier = Modifier.height(16.dp))
ScoreCardListItem()
Spacer(modifier = Modifier.height(16.dp))
ScoreCardListItem()
Spacer(modifier = Modifier.height(16.dp))
ScoreCardListItem()
【讨论】:
谢谢,它成功了。实际上,我在 Composable 函数中使用了 Column 。这就是它生成错误、删除 Colum 并放入 item 的原因。然后它起作用了。解决方案是 LazyColumn。以上是关于viewpager jetpack compose 中的垂直滚动不起作用的主要内容,如果未能解决你的问题,请参考以下文章
带有片段和 Jetpack 导航的 Viewpager2:恢复片段而不是重新创建它们
Jetpack All In Compose ?看各种Jetpack库在Compose中的使用
Android Jetpack Compose学习—— Jetpack compose基础布局
Android Jetpack Compose学习—— Jetpack compose基础布局