记住 LazyColumn 滚动位置 - Jetpack Compose

当我从一个可组合屏幕导航到另一个屏幕时,我试图保存/记住 LazyColumn 滚动位置。即使我将 rememberLazyListState 传递给 LazyColumn,在我回到第一个可组合屏幕后,滚动位置也不会保存。有人可以帮我吗?

@ExperimentalMaterialApi
@Composable
fun DisplayTasks(
    tasks: List<Task>,navigateToTaskScreen: (Int) -> Unit
) {
    val listState = rememberLazyListState()

    LazyColumn(state = listState) {
        itemsIndexed(
            items = tasks,key = { _,task ->
                task.id
            }
        ) { _,task ->
            LazyColumnItem(
                toDoTask = task,navigateToTaskScreen = navigateToTaskScreen
            )
        }
    }
}
zhng41 回答:记住 LazyColumn 滚动位置 - Jetpack Compose

好吧,如果您真的想保存它,您必须将它存储为类似视图模型的东西,它仍然保留下来。 remembered 的东西只持续到可组合没有被销毁。如果你导航到另一个屏幕,之前的 Composables 会被销毁,同时滚动状态也会被销毁

本文链接:https://www.f2er.com/1759.html

大家都在问