使用recyclerview侧滑删除item遇到的问题

nebofeng 2016-11-15 09:56:41
主要代码如下:
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有什么区别吗?
...全文
191 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧