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