首页 > 解决方案 > PagedList 和 RecyclerView 交互的性能可以提高吗?

问题描述

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

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

流程如下:

  1. 数据库中的数据发生了变化
  2. 相应Observer的将更改传递给Adapter

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

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

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

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

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

我真的很感激任何建议。

标签: androidkotlinandroid-livedataandroid-paging

解决方案


推荐阅读