将 android studio 更新为 arctic fox 后,我收到此警告。但我不知道通知数据更改的有效方法是什么。在我的代码中,我从网络调用填充适配器,然后我通知数据集更改,但编译器给了我这个:
如果可以的话,使用更具体的更改事件总是更有效。依靠 notifyDataSetChanged 作为最后的手段。回收视图
编辑问题:希望我们使用
DiffUtil文档
而不是 notifyDataSetChanged() 因为它更快。在medium上查看这篇文章。
这意味着如果您需要在 recyclerview 中一次更改整个项目列表,请使用notifyDataSetChanged()
.
如果您需要更改特定项目,那么最好使用notifyItemChanged(position)
它,这样它就不会刷新和重新绑定整个数据集,如果数据集很大,这会影响性能。
所以这只是一个正常的建议或警告,没什么好担心的。:)
该函数notifyDataSetChanged
本质上认为数据集中的所有数据都已更改。这会导致所有VISIBLE
使用此数据的视图都被重绘。当只有一些数据发生变化时,这是不必要的。
您需要确定数据发生变化的位置并通知您的适配器仅更新这些项目。
您可以使用此方法通知特定位置的更改
这只是 Android 工作室建议更新 RecyclerView 中的数据。
此建议仅使用特定位置更新通知回收站视图项目中的更改,例如 notifyItemChanged(int)、notifyItemInserted(int)、notifyItemRemoved(int)、notifyItemRangeChanged(int, int)、notifyItemRangeInserted(int, int)、notifyItemRangeRemoved(int,诠释)。
notifyDataSetChanged()应该作为最后的手段或最后的行动方案。此函数将再次重新初始化并重新绑定所有视图,这会降低性能。