P.D*_*dik 14 paging pagination android list android-recyclerview
我正在使用新的 jetpack Paging 3 库。我有一个特定的用例。我想使用 viewmodel 在两个屏幕之间共享这些数据。
一个屏幕需要分页数据,而对于第二个屏幕,我想要这些数据的简单列表(不是分页列表,我需要使用列表...)。我不想在 PagingData 的对象中列出。
有没有办法在没有 PagingData 对象的情况下获取列表? 
如您所见,没有获取此数据的变量。我什至在创建流时在 viewModel 中尝试过,但我还没有找到解决方案。
PagingData 只是一个无状态的增量加载事件流,所以它不保存这种状态。
但是PagingDataAdapter/ 不同(以及类似的其他演示者端变体)已经需要保存数据,因此它们公开了PagingDataAdapter.snapshot()可以为您提供当前显示项目列表的API 。
请记住,呈现的数据是转换后的,可能不包括由于超出而丢弃的页面maxSize,并且还可能与 fetcher 竞争,因为在加载数据和让它显示在 UI 之间需要一些时间。
这实际上取决于您对准确跟踪感兴趣的内容,但是从 fetcher 端(跟踪预转换),您可以根据返回的结果构建列表,PagingSource也可以编写一个 no-op .map() 运算符,在PagingData该运算符上将看到每个项目(但不会为您提供有关订单的信息)。
不幸的是,Paging3 还没有提供可以为您构建这种状态的非 ui 收集器(在测试中最有用),但希望我们将来可以研究一下。
| 归档时间: |
|
| 查看次数: |
3627 次 |
| 最近记录: |