package com.dk.animation.effect; import android.support.v7.widget.RecyclerView.ViewHolder; public class PackageAnimator extends BaseItemAnimator { private SegmentAnimator mInAnimator; private SegmentAnimator mOutAnimator; public PackageAnimator(SegmentAnimator in, SegmentAnimator out) { super(); mInAnimator = in; mOutAnimator = out; setAddDuration(800); setMoveDuration(800); setRemoveDuration(800); } @Override protected void prepareAnimateAdd(ViewHolder holder) { if (mInAnimator != null) { mInAnimator.resetDelayCount(); mInAnimator.animationPrepare(holder); } } @Override protected void animateAddImpl(ViewHolder holder) { if (mInAnimator != null) { mInAnimator.nextDelay(); mInAnimator.startAnimation(holder, getAddDuration(), this); } } @Override protected void animateRemoveImpl(ViewHolder holder) { if (mOutAnimator != null) { mOutAnimator.nextDelay(); mOutAnimator.startAnimation(holder, getRemoveDuration(), this); } } @Override protected void prepareAnimateRemove(ViewHolder holder) { if (mOutAnimator != null) { mOutAnimator.resetDelayCount(); mOutAnimator.animationPrepare(holder); } } }