安卓。作曲、伴奏寻呼机、无限寻呼机如何从特定位置开始寻呼机?

tes*_*van 1 android infinite-scroll android-viewpager android-jetpack-compose jetpack-compose-accompanist

我正在用来com.google.accompanist:accompanist-pager实现页面的无限滚动。我按照 Horizo​​ntalPagerLoopingSample 中的描述实现了所有内容。我需要从第三页开始显示我的寻呼机。但是当我设置initialPage = 2 Horizo​​ntalPager 显示错误的页面。在示例中设置显示第一页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总是显示第一页。

请帮我。

ngl*_*ber 5

我认为这更像是一个数学问题:)

我认为应该是这样的:

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)