如何解决Android 分页和分组模型
我有类似 MVVM 的架构,数据流如下:
-
fun <T> getPhotos(): LiveData<PagedList<PhotoInfo>>
-
我正在使用
androidx.paging
库 v.2,它是Pagedlistadapter
作为我的RecyclerView
的适配器
现在我想按某个字段对数据进行分组,例如按日期,并且能够将组设为水平(水平滚动)或垂直。
我浏览了类似问题的现有答案和解决方案,以下是我找到的选项:
选项 1
我可以更新查询以对数据进行分组并插入“特殊”行作为分隔符。 然后在 Adapter 中,我可以有一些分支逻辑来处理“常规”行和“分隔符”。
我不喜欢这个选项,因为它涉及 sql 查询的这种不受欢迎的更改。我也无法想象在这种情况下如何实现“水平”组滚动。
选项 2
我可以有嵌套的回收器视图,但在这种情况下,我不知道如何更新我的代码,以便我可以从“线性”PagedList<PhotoGroup>
获得 PagedList<PhotoInfo>
。
我唯一能想到的:
- 在存储库中有两个方法,它们为特定组中的组和项目返回“分页”数据,例如:
fun <T> getPhotoGroups(): LiveData<PagedList<PhotoGroup>>
fun <T> getPhotosForGroup(groupId: Long): LiveData<PagedList<PhotoInfo>>
- 每个组都有自己的 PagedList 和 RecyclerView。
但恐怕它可能过于复杂并且可能会产生开销。如果我在同一方向(垂直)有父 RecyclerView 和子 RecyclerView,也不确定它会正常工作
我有一种强烈的感觉,我错过了一些东西,并且让事情变得过于复杂。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。