我正在使用新的 jetpack Paging 3 库。我有一个特定的用例。我想使用视图模型在两个屏幕之间共享这些数据。
一个屏幕需要分页数据,对于第二个屏幕,我想要此数据的简单列表(不是分页列表,我需要使用该列表...)。我不想在 PagingData 对象中列出列表。
Is there any way how to get the list without PagingData object ?
正如您所看到的,没有变量可以获取此数据。我什至在创建流程时在 viewModel 中尝试过它,但我还没有找到解决方案。
PagingData
只是增量加载事件的无状态流,因此它不保存这种状态。
However PagingDataAdapter
/ 不同(以及类似的其他演示者端变体),已经需要保存数据,因此它们公开了 API,例如PagingDataAdapter.snapshot()
它可以为您提供当前呈现项目的列表。
请记住,所提供的数据是转换后的,可能不包括由于超出限制而丢失的页面maxSize
,并且还可能与 fetcher 竞争,因为加载数据和将其显示在 UI 中之间需要一些时间。
这实际上取决于您对准确跟踪感兴趣的内容,但是从获取器端(跟踪预转换)您可以根据返回的结果构建列表PagingSource
或者你也可以写一个无操作的 .map() 运算符PagingData
它将看到每个项目(但不会为您提供有关订单的信息)。
不幸的是,Paging3 尚未提供可以为您构建此状态的非 ui 收集器(在测试中最有用),但这希望是我们将来可以研究的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)