在 Android分页库中,如何使 PagedList 或 DataSource 中的数据集子集无效?我写 PagedList 或 DataSource 是因为我不知道应该调用哪一个。
例如,我正在制作一个名为BufferOverflow的 QA 应用程序。
我有一个PageKeyedDataSource
通过网络加载数据。它支持通过 API 上的索引进行分页。在那个应用程序中,我有一个热门问题屏幕,其中包含“无限”的热门问题列表。当然,最重要的问题会定期更新。
如何:
- 更新第 1 页的数据集?
- 在第 10 页更新数据集?
我知道使用 PagedList 的好处是它会计算哪个项目是新的/旧的,使用DiffUtil
. 但是,我如何告诉它数据集上的某些key
或position
已更改?
我问的是不可能的吗?我应该自己实现自定义分页行为吗?
笔记:
- 我不想使所有数据无效。
adapter.getCurrentList().getDataSource().invalidate();
这将使数据源上的整个数据无效。虽然我只想使数据的某些部分无效。
- 我认为我正在寻找的 API 类似于 RecyclerView.Adapter 的
list.adapter.notifyItemChanged(0);
但当然,更新数据集不是适配器的责任。它在PagedList
、DataSource
或 Dao 类中。