【发布时间】:2021-12-12 18:30:59
【问题描述】:
我正在使用 androidx.paging:paging-compose (v1.0.0-alpha-14) 和 Jetpack Compose (v1.0.3),我有一个自定义的 PagingSource 负责从后端提取项目。
我也使用撰写导航组件。
问题是我不知道如何在通过 NavHostController 导航到不同屏幕和返回(滚动状态和缓存项目)之间保存寻呼机流的状态。
我试图通过rememberSaveable 保存状态,但它无法完成,因为它不是可以放入 Bundle 的东西。
是否有一个快速/简单的步骤来做到这一点?
我的示例代码:
@Composable
fun SampleScreen(
composeNavController: NavHostController? = null,
myPagingSource: PagingSource<Int, MyItem>,
) {
val pager = remember { // rememberSaveable doesn't seems to work here
Pager(
config = PagingConfig(
pageSize = 25,
),
initialKey = 0,
pagingSourceFactory = myPagingSource
)
}
val lazyPagingItems = pager.flow.collectAsLazyPagingItems()
LazyColumn() {
itemsIndexed(items = lazyPagingItems) { index, item ->
MyRowItem(item) {
composeNavController?.navigate(...)
}
}
}
}
【问题讨论】:
标签: android android-jetpack-compose android-paging android-paging-3