我对新框架 Jetpack Compose 的 HorizontalPager 有问题。当我将 HorizontalPager 与 TabRow 关联时,一切正常,直到我到达 TabRow (Title3) 的最后一个元素(通过单击选项卡行或滑动到最后一页)。当我在最后一页时,如果我向左滑动 1 纳米,寻呼机就会从最后一页 (Title3) 切换到上一页 (Title2)。它不像其他页面之间的切换,当其他人继续时,这个是瞬间的。我希望我足够清楚可以理解。这是我使用的代码:
val tabTitles = listOf("Title1", "Title2", "Title3")
val pagerState = rememberPagerState(pageCount = tabTitles.size)
val coroutineScope = rememberCoroutineScope()
Column {
TabRow(
selectedTabIndex = pagerState.currentPage,
indicator = { tabPositions ->
TabRowDefaults.Indicator(Modifier.pagerTabIndicatorOffset(pagerState, tabPositions))
}) {
tabTitles.forEachIndexed { index, title ->
Tab(
text = { Text(title) },
selected = pagerState.currentPage == index,
onClick = { coroutineScope.launch { pagerState.animateScrollToPage(index) } }
)
}
}
HorizontalPager(state = pagerState) { page ->
LazyVerticalGrid(
cells = GridCells.Fixed(2),
contentPadding = PaddingValues(4.dp)
) {
when (page) {
0 -> // Create a list of card for each item
1 -> // Create a list of card for each item
2 -> // Create a list of card for each item
}
}
}
}
即使这是一个新框架,我也希望有人能帮助我:/ 如果问题来自它而不是来自我的代码,我愿意接受其他解决方案来实现这种没有 HorizontalPager 的寻呼机。 提前致谢。
编辑:这是 0.9.0 版 Google 伴奏库中的一个错误,我使用最新版本 (0.10.0) 解决了我的问题。