添加或删除RecyclerView的item后 刷新Adapter中的数据源的个数

本文介绍了在使用RecyclerView时如何正确地进行数据更新及动画展示。通过对比notifyDataSetChanged()与notifyItemRangeInserted()方法,详细解释了如何实现平滑的数据添加动画,并避免因立即刷新而导致的动画卡顿。
摘要由CSDN通过智能技术生成

通常Recycler给Adapter赋上数据源的时候利用:

adapter.notifyDataSetChanged();

这样一般是在初始化界面 从网络获取到数据后 直接赋给adapter的写法。

然后再动态的增加条目,又希望带有动画效果,可以这么写:

adapter.notifyItemRangeInserted(int positionStart, int itemCount);

嗯,在RecyclerView中 数据给加上去了 并且有一个动画效果。
但是,注意Adapter 中,这个数据源并没有增加。
这时,就要用到 notifyDataSetChanged() 这个方法了
在 调用加入的方法后 再调用全部刷新的方法。我的写法是这样的:

adapter.notifyItemRangeInserted(int positionStart, int itemCount);
new Handler().postDelayed(new Runnable() {
     @Override
     public void run() {
           adapter.notifyDataSetChanged();
     }
},400);

利用Handler延时400ms 刷新 这样写是因为加入时的动画效果有那么一小段时间,如果不延时直接刷新的话动画会卡顿,不信可以去试试。
删除也是同理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值