繁体   English   中英

Jetpack Compose:如果动画滚动被中断并开始新的滚动,LazyColumn 不会呈现某些项目

[英]Jetpack Compose: LazyColumn does not render some items if animated scroll is interrupted and a new one is started

我目前正在试用 Android Jetpack Compose 并希望使用LazyColumn实现类似RecyclerView的列表。 但是,当在用户滚动期间或在另一个程序滚动(动画)期间以编程方式滚动(动画)到某个项目时,列表中的某些项目不会呈现。 这是 Compose 的问题还是我没有正确实现滚动?

作为一个简单的例子,可以使用下面的代码:

class MainActivity : ComponentActivity() {
    @ExperimentalTime
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContent {
            val listState = rememberLazyListState()

            rememberCoroutineScope().launch {
                delay(10.seconds)
                listState.animateScrollToItem(1000)
                delay(100.milliseconds)
                listState.animateScrollToItem(0)
            }

            LazyColumn(
                state = listState,
                contentPadding = PaddingValues(1.dp),
            ) {
                items(1000) {
                    Text(
                        text = "$it",
                        modifier = Modifier
                            .padding(2.dp)
                            .clip(MaterialTheme.shapes.small)
                            .background(MaterialTheme.colors.onSurface)
                            .padding(8.dp)
                            .fillMaxWidth(),
                        color = MaterialTheme.colors.surface,
                        textAlign = TextAlign.Center,
                    )
                }
            }
        }
    }
}

我还录制了该应用程序的示例视频: https://i.imgur.com/dKFn1VH.mp4

这是一个错误:

https://issuetracker.google.com/issues/188566058

它在1.0.0-beta08中是固定的和预期的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM