【问题标题】:Incorrect Result from Room only pagination仅房间分页的结果不正确
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-28
      • 2013-10-15
      • 1970-01-01
      相关资源
      最近更新 更多