Java Android recyclerview:notifydatasetchanged或notifydatarangeremoved比notifydatarangeinserted更高效?
我有一个recyclerview,它的元素数量一直在变化。有时可能有5项,有时有7项,有时有70项。更改整个数据集的更有效方法是什么: 1) 调用clear(),添加新数据集,然后调用notifydatasetchanged 2) 调用clear(),然后调用notifyitemrangeremoved,然后添加新数据集并调用notifyItemRangeInsertedJava Android recyclerview:notifydatasetchanged或notifydatarangeremoved比notifydatarangeinserted更高效?,java,android,user-interface,android-recyclerview,Java,Android,User Interface,Android Recyclerview,我有一个recyclerview,它的元素数量一直在变化。有时可能有5项,有时有7项,有时有70项。更改整个数据集的更有效方法是什么: 1) 调用clear(),添加新数据集,然后调用notifydatasetchanged 2) 调用clear(),然后调用notifyitemrangeremoved,然后添加新数据集并调用notifyItemRangeInserted public void swapData(ArrayList<dataType>() newdata) { i
public void swapData(ArrayList<dataType>() newdata) {
int oldSize = recyclerlist.size();
recyclerlist.clear();
if (oldSize > 0) {
notifyItemRangeRemoved(0, oldSize);
} ...
}
public void swapData(ArrayList()newdata){
int oldSize=recyclerlist.size();
recyclerlist.clear();
如果(旧尺寸>0){
notifyItemRangeRemoved(0,旧尺寸);
} ...
}
最简单的方法包括几个步骤,但只有在您的物品具有正确的ID时才有效
getItemId(int位置)
并返回项目的idsetHadStableIds(true);
notifyDataSetChanged()