我对recyclerview和recyclerview.adapter有问题。我得到了一个函数,它将项目列表设置到适配器中。当用户刷卡刷新时,我加载新的数据,这意味着有些项是新的,然后我将这些项设置到适配器中,我必须使它们失效。我的问题是notifyItemRangeInserted()
和notifyItemRangeChanged()
。当新项目出现时,如果我先删除它们,然后notifyItemRangeRemoved()
,然后添加,最后调用notifyItemRangeInserted()
,它将工作,但所有项目都将无效,并且它将闪烁。否则,如果我确定新数据集和旧数据集之间的大小差异,就不会使适当的元素失效。
public void setItems(@NonNull List<ItemType> items) {
final int oldSize = mItems.size();
mItems.clear();
notifyItemRangeRemoved(firstPosition(), oldSize);
mItems.addAll(items);
notifyItemRangeInserted(firstPosition(), items.size());
}
mItems
是arraylist。 最佳答案
你能试试这个吗?
myRecycleAdapter.NotifyitemInserted(items.size());
您的方法如下:
public void setItems(@NonNull List<ItemType> items) {
mItems.clear();
mItems.addAll(items);
myRecycleAdapter.notifyItemInserted(items.size());
}
希望这对你有帮助。
关于android - Android RecyclerView适配器项目刷新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34334630/