使用recyclerview侧滑删除item遇到的问题
主要代码如下:
recyclerView.setAdapter(new mRecyclerViewAdapter(datas));
class mRecyclerViewAdapter extends RecyclerView.Adapter<ViewHolder>
implements View.OnClickListener {
public ArrayList datas=null;
public mRecyclerViewAdapter(ArrayList datas){
this.datas=datas;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_showcollections,parent,false);
ViewHolder vh = new ViewHolder(view);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.tv_delete.setTag(position);
//设置监听事件
holder.tv_delete.setOnClickListener(this);
}
@Override
public int getItemCount() {
return datas.size();
}
@Override
public void onClick(View v) {
int flag= (int) v.getTag();
switch (v.getId()){
case R.id.tv_delete:
//TODO:删除这个item,删除本地数据,网络数据
datas.remove(flag);
notifyItemRemoved(flag);
LogUtils.e("positon",flag+"============"+ datas.size()+"====================》");
break;
default:
break;
}
}
}
出现的问题是:例如是20个item,从后往前删除,正常执行,可是从前几个开始往后删除,就会在删除一个之后,发生卡顿,
无法滑动 recyclerView,
1.是否是由于的处理点击事件,是在mRecyclerViewAdapter 中?
2.如果 新建对象mAdapter设置适配器 然后 mAdapter.notifyItemRemoved(flag); 与在类中直接调用notifyItemRemoved有什么区别吗?