gpt4 book ai didi

android - Jetpack 撰写 : How to keep UI state across pages/composable?

转载 作者:行者123 更新时间:2023-12-04 23:49:54 26 4
gpt4 key购买 nike

有没有办法保存 Composable 的 UI 状态,以便在 Composable 之间切换时,它们的 UI 状态与离开 View 时相同?
我试过使用 rememberLazyListState() (使用 rememberSaveable )保存 LazyColumn 的滚动状态但回到 Composable 时它似乎不起作用。
有任何想法吗 ?
编辑:我正在使用 NavController处理 Composable 之间的导航

最佳答案

我只是想出了如何去做。这个想法是提升LazyListState到可组合管理 View 导航。

@Composable
fun AppScreenNav(screen: Screen) {
val listState = rememberLazyListState()
when (screen) {
Screen.Home -> Home()
Screen.Favorites -> Favorites(listState)
}
}

@Composable
fun Favorites(listState: LazyListState) {
val favorites: List<String> by rememberSaveable { mutableStateOf(List(1000) { "Favorites $it" }) }
LazyColumn(
state = listState
) {
items(favorites) { item ->
Text(
color = Color.Black,
text = item,
)
}
}
}
在这里,我们将列表状态提升到父组件。在 Home() 之间切换时和 Favorites()可组合的列表滚动状态应该保持不变。

关于android - Jetpack 撰写 : How to keep UI state across pages/composable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67198697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com