这意味着,如果您需要一次性更改recyclerview中的整个项列表,则使用notifyDataSetChanged()
。
如果您需要更改特定项,则最好使用notifyItemChanged(position)
,以便不会刷新和重新绑定整个数据集,如果数据集很大,则可能影响性能。
因此,这只是一个普通建议或者说警告,没有什么可担心的。:)
函数notifyDataSetChanged
会认为数据集中所有的数据都已经改变,导致使用这些数据的所有可见视图都要重新绘制。当只有部分数据发生了改变时,这是不必要的。
你需要确定数据发生更改的位置,并通知适配器仅更新这些项目。
你可以使用以下方法通知特定位置的更改:
这只是Android Studio提出的建议,用于更新RecyclerView中的数据。
此建议是针对特定位置的RecyclerView项使用notifyItemChanged(int)、notifyItemInserted(int)、notifyItemRemoved(int) 、notifyItemRangeChanged(int, int)、notifyItemRangeInserted(int, int)和notifyItemRangeRemoved(int, int)来通知更改Recycler view items。
notifyDataSetChanged() 应该作为最后的补救措施或最终解决方案。此函数将重新初始化和重新绑定所有视图,这可能会降低性能。
notifyDataSetChanged()
会是更新RecyclerView最快的方式吗? - MicronotifyItemRangeChanged()
,如果你真的需要改变整个数据集,那就使用notifyDataSetChanged()
。这没有问题。警告也是这个意思。 - Dev4Life