Android notifyDataSetChanged()与notifyItemChanged()用于不同的数据大小
我有一个简单的Android notifyDataSetChanged()与notifyItemChanged()用于不同的数据大小,android,android-recyclerview,Android,Android Recyclerview,我有一个简单的RecyclerView,数据集最多有5000个项目 用户只需单击一个简单的按钮,即可选择项目并更新其数据 问题: 如果用户仅选择几个项目,则对每个项目调用notifyItemChanged()似乎比调用notifyDataSetChanged()更有效 另一方面,如果用户从5000项中选择了4000项,那么调用notifydatasetchange()比调用每个项的notifyItemChanged()效率要高得多(根据我的基准测试) (notifyItemRangeChan
RecyclerView
,数据集最多有5000个项目
用户只需单击一个简单的按钮,即可选择项目并更新其数据
问题:
- 如果用户仅选择几个项目,则对每个项目调用
似乎比调用notifyItemChanged()
更有效notifyDataSetChanged()
- 另一方面,如果用户从5000项中选择了4000项,那么调用
比调用每个项的notifydatasetchange()
效率要高得多(根据我的基准测试)notifyItemChanged()
notifyItemRangeChanged()
不可能,选择可能根本不连续)
我可以为此优化我的代码吗?显然,我不知道用户将选择多少项。这种情况是否有一种常见的做法
提前感谢。我认为从优化的角度来看,您可以使用
NotifiItemChanged(int location)
仅在指定/选定的位置进行通知。这比调用notifiyItemChanged()要好得多。因为正如您所知,它将通知所有项目。我认为从优化角度来看,您可以使用NotifiItemChanged(int location)
仅在指定/选定的位置进行通知。这比调用notifiyItemChanged()要好得多。因为正如您所知,它会通知所有项目。我想知道用户能够以多快的速度选择一行,在正常情况下,更改项目会更好。@SarthakMittal无论选择的速度有多快,更新都是重要的操作,只需单击一个按钮。类似于updateSelectedItems(selectedItems)
。此时将调用notify方法selectedItems
可以是3个项目,但也可以是3000个项目,这是有问题的部分。我想知道用户能够以多快的速度选择一行,在正常情况下更改项目会更好。@SarthakMittal选择速度有多快并不重要,更新是重要的操作,只需单击一个按钮。类似于updateSelectedItems(selectedItems)
。此时将调用notify方法selectedItems
可以是3项,但也可以是3000项,这是有问题的部分。