notifyDataSetChanged()与notifyItemChanged()的变化数据大小

时间:2016-10-07 17:23:34

标签: android android-recyclerview

我有一个简单的RecyclerView,其数据集最多可达5000件。

用户只需点击一下按钮即可选择项目并更新数据。

问题

  • 如果用户只选择了几项,则在每个项目上调用notifyItemChanged()似乎比调用notifyDataSetChanged()更有效。
  • 另一方面,如果用户选择5000个中的4000个项目,则调用notifyDataSetChanged(),如果效率更高(根据我的基准测试),而不是在每个项目上调用notifyItemChanged()

notifyItemRangeChanged()是不可能的,选择可能根本不会持续)

我能以某种方式优化我的代码吗?显然,我不知道用户将选择多少项。这种情况有通用的做法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为从优化的角度来看,您可以使用notifiyItemChanged(int location)来帮助仅在指定/选定的位置进行通知。这比调用notifiyItemChanged()要好得多。因为你知道它会通知所有的项目。