tes*_*van 1 android infinite-scroll android-viewpager android-jetpack-compose jetpack-compose-accompanist
我正在用来com.google.accompanist:accompanist-pager实现页面的无限滚动。我按照 HorizontalPagerLoopingSample 中的描述实现了所有内容。我需要从第三页开始显示我的寻呼机。但是当我设置initialPage = 2 HorizontalPager 显示错误的页面。在示例中设置显示第一页initalPage = Int.MAX_VALUE / 2。是否可以用无限寻呼机计算真实的具体位置?
我尝试做这样的事情:
val positionFromIWantToStart = 2
val startIndex = (Int.MAX_VALUE / 2) + positionFromIWantToStart
val pagerState = rememberPagerState(initialPage = startIndex)
Run Code Online (Sandbox Code Playgroud)
但这工作不正确,HorizontalPager总是显示第一页。
请帮我。
我认为这更像是一个数学问题:)
我认为应该是这样的:
val yourList = (1..5).map { it.toString() }
val colors = listOf(Color.Red, Color.Green, Color.Blue, Color.Yellow, Color.Magenta)
val positionFromIWantToStart = 3
val itemsCount = yourList.size
val numPages = Int.MAX_VALUE / itemsCount
val startPage = numPages / 2
val startIndex = (startPage * itemsCount) + positionFromIWantToStart
val pagerState = rememberPagerState(initialPage = startIndex)
HorizontalPager(
state = pagerState,
count = Int.MAX_VALUE
) { index ->
val page = index % itemsCount
Text(
text = "Page ${yourList[page]}",
modifier = Modifier
.fillMaxSize()
.background(colors[page]),
textAlign = TextAlign.Center
)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3345 次 |
| 最近记录: |