使用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有什么区别吗?
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有什么区别吗?
...全文
相关推荐
android RecyclerView侧滑菜单,滑动删除,长按拖拽,下拉刷新上拉加载
本文介绍的库中的侧滑效果借鉴自SwipeMenu,并对SipwMenu的源码做了修改与Bug修复,然后才开发出的SwipeRecyclerView。 需要说明的是,本库没有对RecyclerView做大的修改,只是ItemView的封装。看起来是对RecyclerView的修改,其实仅仅是为RecyclerView添加了使用的方法API而已。 本库已经更新了三个版本了,会一直维护下去,根据小伙伴的要求,以后也会添加一些其它功能。 SwipeRecyclerView将完美解决这些问题: 以下功能全部支持:竖向ListView、横向ListView、Grid、StaggeredGrid
SwipeRecyclerView,:Melon:Recyclerview侧滑菜contractor,item拖拽拽,滑动动删除item,自动加载更多,headerview,footerview,item分组黏贴。.zip
SwiperecyclerView公司
不错的Item侧滑菜单
作者yanzhenjie,源码SwipeRecyclerView,最强RecyclerView,Item侧滑菜单,长按拖拽Item,滑动删除Item。可以和任何下拉刷新框架结合使用。
RemoveItemRecyclerView
一个基于RecyclerView的可侧滑删除item的例子
RecyclerView
recyclerview 实现侧滑显示删除按钮


