小编meh*_*sht的帖子

Room 分页无法正确地将 Flow<PagingData<Model>> 与其他流合并

我正在尝试使用Paging 3库来获取Flow<PagingData<Scan>>Room然后检查是否在 recyclerview 中选择了项目,因此我将此类映射到另一个名为 的类ScanMapper。为了实现此映射,每当用户将某个项目标记为选定时,我都会MapMutableStateFlow<Map<Int, State>>. 这里Map查找 anIndex(Int)得到StateState只是一个enum代表 State 的类UNINITIALISEDUSELECTED并且SELECTED

我将 Map 的值设置为 a StateFlow<Map<Int,State>>。问题是,我试图将Flow<PagingData<Scan>>与 结合起来,StateFlow<Map<Int,State>>以便将 也State作为参数传递给ScanMapper类,因为它State是从 中获取的StateFlow<Map<Int,State>>,而不是原始Scan类的一部分。但是,尽管当我使用该功能将项目标记为在项目单击上选择时,PagingDataAdapter似乎总是会出现这种情况。State UNINITIALISEDmarkSelected(scanId: Int)

请告诉我我在这里缺少什么。

更新

我能够通过使用并使用回收器适配器Flow<List<Scan>>删除库的使用来实现我想要的功能。虽然这不是实际的解决方案,因为它消除了库,但以下更改允许我执行项目选择:Paging 3DiffUtilspagination using paging 3

更新了刀 …

android kotlin-coroutines android-paging-3 kotlin-stateflow

2
推荐指数
1
解决办法
2581
查看次数