J. *_*Doe 4 android android-jetpack-compose jetpack-compose-accompanist
使用accompanist-pagerversion 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)
)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 11
问题是 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
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3445 次 |
| 最近记录: |