【发布时间】:2019-08-27 03:32:02
【问题描述】:
我正在使用仅数据库分页来对我的数据库中的聊天头进行分页。 我的数据库中大约有 450 个条目
@Query("select * from ChatHeadMaster where archive= :archive order by chatBot desc,lastMessageTimestamp desc")
fun fetchPagedChatHeadList(archive: Int): DataSource.Factory<Int,ChatHeadWithMessages>
分页有两个问题
1) 即使数据源确实逐页获取数据,但它一次获取所有数据。因此,如果我将页面大小设置为 30,它将以 30 个为单位获取数据,直到获取整个数据,因为我的主线程挂起,直到获取完整数据
2) 每当我的表发生变化时,数据源的行为就会突然发生,它会跳过第一页并返回剩余的数据。因此,如果我的表中有 75 个项目并且我的页面大小为 10,最初数据源将按如下方式运行 30(由于初始加载大小提示),10,10,10,10,5 并且在表数据源更改时将返回 55 个项目。我不知道为什么会这样
更新
发现问题。我的 RecyclerView 位于 NestedScrollView 内,因为位置数据源无法正确计算偏移量。 现在我已经删除了嵌套滚动视图,它就像一个魅力
【问题讨论】:
标签: android kotlin android-paging android-paging-library