如果我的RecyclerView中有10个项目:
Indexes: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
我删除索引2处的那个,并在其位置插入2个项目,如下所示:
data.remove(2);
data.add(2, object);
data.add(3, object);
我会从notifyItemRangeChanged
/ notifyItemRangeInserted
/ notifyItemRangeRemoved
中调用哪些方法,以及我会在其中添加哪些值?
答案 0 :(得分:0)
根据文档,需要进行以下调用:
对notifyItemInserted()的单次调用不会这样做,因为:(来自文档)
以前位于positionStart及以后的项目现在可以从位置positionStart + itemCount开始找到。
这不是必需的。
答案 1 :(得分:0)
取决于您正在添加项目视图类型的值...
如果方法getItemViewType()
返回相同的值,则可以调用notifyItemChanged(2); notifyItemInserted(3)
如果不是,您应该对数据操作执行相同的操作:notufyItemRemoved(2); notifyItemRangeInserted(2,2);
据我所知,不需要放任何数据(有效载荷)