我对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/

10-09 06:55