PagedList 和 RecyclerView 交互的性能能否提升?

jus*_*oob 6 android kotlin android-livedata android-paging

在我的 Android 应用程序中,我在RecyclerView使用 Room 和 Paging 库中显示数据。

我的实现与AsyncPagedListDiffer 文档中的示例非常相似。

流程如下:

  1. 数据库中的数据被更改
  2. 相应的Observer将更改传递给Adapter

    myLiveData.observe(viewLifecycleOwner, Observer {
        myAdapter.submitList(it)
    })
    
    Run Code Online (Sandbox Code Playgroud)
  3. AsyncPagedListDiffer计算差异并相应地更新列表

我的问题是第 3 步的性能下降。

即使我只在列表顶部插入一个项目,不同的项目也必须检查所有项目(这非常低效,尤其是对于较大的数据集),而简单的notifyItemInserted(0)调用就足够了。

有没有办法解决这种行为?

例如,我可以告诉它不必检查所有项目吗?或者任何其他解决方案?

我真的很感激任何建议。