android 陪同人员寻呼机animateScrollToPage无法正确滚动到下一页

bejyjqdl  于 2022-11-03  发布在  Android
关注(0)|答案(2)|浏览(151)

使用accompanist-pager版本0.25.1时,animateScrollToPage()似乎不能一直滚动到下一页完全可见,上一页仍然显示。非动画版本scrollToPage()似乎工作正常。我是否遗漏了一些额外的参数?

@ExperimentalPagerApi
@Composable
fun MyPager() {
    val pagerState = rememberPagerState()
    HorizontalPager(
        count = 10,
        state = pagerState
    ) { pagerIndex ->
        Box(
            modifier = Modifier
                .fillMaxWidth()
                .height(150.dp)
                .background(if (pagerIndex.mod(2) == 0) Color.Cyan else Color.Red)
        )
    }
    with(pagerState) {
        LaunchedEffect(key1 = currentPage) {
            launch {
                delay(10000)
                animateScrollToPage(
                    page = (currentPage + 1).mod(pageCount)
                )
            }
        }
    }
}

laximzn5

laximzn51#

我也有同样的问题,最后我选择回滚版本的伴奏者寻呼机0.24.1-阿尔法.

yjghlzjz

yjghlzjz2#

问题是pagerState在动画结束前更新。

var key by remember { mutableStateOf(flase) }

LaunchedEffect(key1 = key) {
    launch {
        delay(2000)
        with(pagerState) {
            val target = if (currentPage < pageCount - 1) currentPage + 1 else 0
            animateScrollToPage(page = target) //Broken
            key = !key
        }
    }
}

相关问题