如果recyclerview 绑定了数据,假设数据有变化,我们通常是:
notifyDataSetChanged 或者:notifyItemChanged(int position)
但如果数据过多notifyDataSetChanged 肯定会消耗一些性能,如果是一次更新多个notifyItemChanged()不行,这个时候用到recyclerview 有一个批量更新的方法notifyItemRangeChanged();
Recyclerview的局部刷新功能:
从指定位置开始刷新指定个item,notifyItemRangeChanged(int,int);
增、删、改的局部刷新:
增:
notifyItemRangeInserted(int startPosition,int itemcount)
startPosition:起始位置,插入数据的位置。
itemcount:数据个数。
删:
notifyItemRangeRemoved(int startPosition,int itemcount)
参数和“增”是相同的,但有个注意的问题点:
调用此方法后需要进行对后面的所有数据进行调用
notifyItemRangeChanged(startPosition,allCount-startPosition);
不然会出现位置异常。(具体原因后期再研究)
改:
直接用notifyItemRangeChanged(int startPosition,int itemcount);