我在notifyItemRemoved
和notifyItemRangeChanged
时遇到了一些问题
我有一张卡片填充的RecyclerView
。每张卡都有自己的按钮。我已在RecyclerView's
方法onBindViewHolder
和OnClickListener
按钮上实施了该功能。按下时,我希望卡片自行删除。我有以下代码:
holder.deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mDataset.remove(holder.getAdapterPosition());
notifyItemRemoved(holder.getAdapterPosition());
notifyItemRangeChanged(holder.getAdapterPosition(), mDataset.size());
}
});
删除时有一种奇怪的行为。我要删除的卡片会在短时间内消失,然后快速重新出现,如果我再次按下删除按钮,则会出现ArrayIndexOutOfBoundsException
错误。
有人经历过这样的事吗?非常感谢任何帮助!
答案 0 :(得分:2)
删除此
notifyItemRangeChanged(holder.getAdapterPosition(), mDataset.size());