RecyclerView notifyItemRemoved 的坑

RecyclerView 的 notifyItemRemoved  方法  可以 实现 带动画的 删除 

先设置 

recyclerView.setItemAnimator(new DefaultItemAnimator());   这样可以带有 添加和删除的动画  

然后  更新的时候 不要使用  notifyDataSetChanged 方法   使用  notifyItemRemoved(pos)方法  

可以实现动画添加删除   其中动画的可以使用很多  

高兴的是,github上已经有很多类似的项目了,这里我们直接引用下:动画,大家自己下载查看。 
提供了SlideInOutLeftItemAnimator,SlideInOutRightItemAnimator, 
SlideInOutTopItemAnimator,SlideInOutBottomItemAnimator等动画效果。  


但是 有一个问题  如果 单纯只是这样   删除的时候会 崩溃  数组越界  是因为 这个方法 没有更新 adapter的数据集  只是更新了界面

调用一下notifyItemRangeChanged方法  绑定一下数据集就可以了


先remove,再notifyItemRemoved, 最后再notifyItemRangeChanged
remove:把数据从list中remove掉,
notifyItemRemoved:显示动画效果

notifyItemRangeChanged:对于被删掉的位置及其后range大小范围内的view进行重新onBindViewHolder


代码应该这样写

			imageList.remove(pos);
                        notifyItemRemoved(pos);
                        notifyItemRangeChanged(pos,imageList.size());


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值