当我从一个可组合屏幕导航到另一个屏幕时,我试图保存/记住 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
)
}
}
}
答案 0 :(得分:1)
好吧,如果您真的想保存它,您必须将它存储为类似视图模型的东西,它仍然保留下来。 remember
ed 的东西只持续到可组合没有被销毁。如果你导航到另一个屏幕,之前的 Composables 会被销毁,同时滚动状态也会被销毁