1

我正在使用仅数据库分页来对我的数据库中的聊天头进行分页。我的数据库中有大约 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 内,因为位置数据源无法正确计算偏移量。现在我已经删除了嵌套滚动视图,它就像一个魅力

4

1 回答 1

1

由于分页列表适配器无法正确计算偏移量,因此发生此问题是因为 NestedScrollView

于 2019-09-20T10:12:41.073 回答