RecyclerView局部刷新动画屏蔽

RecyclerView的notifyItemChanged,notifyItemAdd,notifyItemRemoved方法会有默认动画。

要屏蔽notifyItemChanged方法产生的动画,可使用以下方法:
((SimpleItemAnimator)mUserListView.getItemAnimator()).setSupportsChangeAnimations(false);

我查看了源码,没有发现有api可以屏蔽另外两个方法产生的动画。只能将DefaultItemAnimator复制一份,重新命名一下MyItemAnimator。然后对代码做以下修改:
@Override
    public boolean animateAdd(final RecyclerView.ViewHolder holder) {
        resetAnimation(holder);
        //ViewCompat.setAlpha(holder.itemView, 0); 这里注释掉
        mPendingAdditions.add(holder);
        return true;
    }

在animateAddImpl方法中,将以下代码中的设置alpha的代码删除
animation.setDuration(getRemoveDuration())
               .alpha(0)</span>.setListener()

在animateRemoveImpl方法中做同样的处理即可。
 

                
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值