@Override protected void onAnimationEndedSuccessfully(@NonNull RemoveAnimationInfo info, @NonNull RecyclerView.ViewHolder item) { final View view = item.itemView; if (isSwipeDismissed(info)) { view.setTranslationX(0); view.setTranslationY(0); } else { view.setAlpha(1); } }
@Override public boolean addPendingAnimation(@NonNull RecyclerView.ViewHolder holder) { if (isSwipeDismissed(holder)) { final View itemView = holder.itemView; final int prevItemX = (int) (itemView.getTranslationX() + 0.5f); final int prevItemY = (int) (itemView.getTranslationY() + 0.5f); endAnimation(holder); itemView.setTranslationX(prevItemX); itemView.setTranslationY(prevItemY); enqueuePendingAnimationInfo(new SwipeDismissRemoveAnimationInfo(holder)); return true; } else { endAnimation(holder); enqueuePendingAnimationInfo(new RemoveAnimationInfo(holder)); return true; } } }
@Override protected void onCreateAnimation(@NonNull RemoveAnimationInfo info) { final ViewPropertyAnimatorCompat animator; if (isSwipeDismissed(info.holder)) { final View view = info.holder.itemView; animator = ViewCompat.animate(view); animator.setDuration(getDuration()); } else { final View view = info.holder.itemView; animator = ViewCompat.animate(view); animator.setDuration(getDuration()); animator.setInterpolator(DEFAULT_INTERPOLATOR); animator.alpha(0); } startActiveItemAnimation(info, info.holder, animator); }
@Override protected void onAnimationEndedBeforeStarted(@NonNull RemoveAnimationInfo info, @Nullable RecyclerView.ViewHolder item) { final View view = item.itemView; if (isSwipeDismissed(info)) { view.setTranslationX(0); view.setTranslationY(0); } else { view.setAlpha(1); } }
@Override protected void onSetup() { setItemAddAnimationsManager(new DefaultItemAddAnimationManager(this)); setItemRemoveAnimationManager(new SwipeDismissItemRemoveAnimationManager(this)); setItemChangeAnimationsManager(new DefaultItemChangeAnimationManager(this)); setItemMoveAnimationsManager(new DefaultItemMoveAnimationManager(this)); setRemoveDuration(150); setMoveDuration(150); }