解决RecyclerView删除Item导致位置错乱的问题
2017-01-17 15:51
666 查看
RecyclerView的刷新分为内容变化和结构变化,结构变化比如remove和insert等并不会导致viewholder的更新,所以有时候我们使用
或者使用
item的位置并没有发生改变,或者位置发生错乱,很是奇怪诡异,需要重新调用
才能刷新整个List每个Item的位置,但这样做会使得RecyclerView增加和删除的动画效果没有了。那么要既想没有Bug的插入删除,又想有动画怎么搞呢,只需要刷新删除位置以下的List的Item位置即可,那么幸亏RecyclerView有一个局部刷新的方法:
怎么使用呢?
我们只需要在删除或插入时同时,刷新改变位置item下方的所有Item的位置:
插入动作:
删除动作:
notifyItemRemoved(position);
或者使用
notifyItemInserted(position);
item的位置并没有发生改变,或者位置发生错乱,很是奇怪诡异,需要重新调用
notifyDataSetChanged();
才能刷新整个List每个Item的位置,但这样做会使得RecyclerView增加和删除的动画效果没有了。那么要既想没有Bug的插入删除,又想有动画怎么搞呢,只需要刷新删除位置以下的List的Item位置即可,那么幸亏RecyclerView有一个局部刷新的方法:
notifyItemRangeChanged(int positionStart, int itemCount)
怎么使用呢?
我们只需要在删除或插入时同时,刷新改变位置item下方的所有Item的位置:
插入动作:
notifyItemInserted(position); if (position != mData.size()) { otifyItemRangeChanged(position, mData.size() - position); }
删除动作:
notifyItemRemoved(position); if (position != mData.size()) { otifyItemRangeChanged(position, mData.size() - position); }
相关文章推荐
- 解决RecyclerView删除Item导致位置错乱的问题 以及删除最后一个出错的问题
- Android 解决RecyclerView删除Item导致位置错乱的问题
- RecyclerView删除Item导致位置错乱问题
- Recyclerview 删除/插入item时,导致position错乱问题
- 解决RecyclerView加载图片时复用itemview导致的图片数量错乱问题
- 解决RecyclerView复用,导致Item混乱问题,checkbox也类似此做法
- Recyclerview Item中图片动画错乱问题解决方案
- RecyclerView中解决item点击持久变色问题
- 解决recyclerview notifyItemChanged 闪烁问题
- 解决RecyclerView 使用 gridlayoutmanager 时item不居中问题
- 在使用Imagepicker时候,点击recyclerView的item,进入删除界面,返回结果为空的问题
- Android RecycleView 实现单选列表 并解决View复用导致错乱问题
- Android BaseAdapter和ViewHolder 优化 解决ListView的item抢焦点问题和item错乱问题
- RecyclerView中的item的match_parent属性失效问题解决方案
- 关于Recyclerview删除item后的数据乱跳问题
- 利用RecyclerView实现的一个动画给变item的位置和左右滑动删除该RcyclervView的Item条目
- 解决ScrollView嵌套RecyclerView导致滑动不流畅的问题
- 关于RecyclerView实现瀑布流,上下滑动时item之间互换位置的问题
- recyclerView调用notifyItemChanged导致屏幕闪烁的问题
- recyclerview 的item被remove后position的错乱问题