@Override public boolean addPendingAnimation(@NonNull RecyclerView.ViewHolder item, int fromX, int fromY, int toX, int toY) { final View view = item.itemView; fromX += item.itemView.getTranslationX(); fromY += item.itemView.getTranslationY(); resetAnimation(item); final int deltaX = toX - fromX; final int deltaY = toY - fromY; final MoveAnimationInfo info = new MoveAnimationInfo(item, fromX, fromY, toX, toY); if (deltaX == 0 && deltaY == 0) { dispatchFinished(info, info.holder); info.clear(info.holder); return false; } if (deltaX != 0) { view.setTranslationX(-deltaX); } if (deltaY != 0) { view.setTranslationY(-deltaY); } enqueuePendingAnimationInfo(info); return true; } }
@Override protected void onCreateAnimation(@NonNull MoveAnimationInfo info) { final View view = info.holder.itemView; final int deltaX = info.toX - info.fromX; final int deltaY = info.toY - info.fromY; if (deltaX != 0) { ViewCompat.animate(view).translationX(0); } if (deltaY != 0) { ViewCompat.animate(view).translationY(0); } final ViewPropertyAnimatorCompat animator = ViewCompat.animate(view); animator.setDuration(getDuration()); startActiveItemAnimation(info, info.holder, animator); }
@Override protected void onSetup() { setItemAddAnimationsManager(new DefaultItemAddAnimationManager(this)); setItemRemoveAnimationManager(new SwipeDismissItemRemoveAnimationManager(this)); setItemChangeAnimationsManager(new DefaultItemChangeAnimationManager(this)); setItemMoveAnimationsManager(new DefaultItemMoveAnimationManager(this)); setRemoveDuration(150); setMoveDuration(150); }
@Override protected void onSetup() { setItemAddAnimationsManager(new DefaultItemAddAnimationManager(this)); setItemRemoveAnimationManager(new DefaultItemRemoveAnimationManager(this)); setItemChangeAnimationsManager(new DefaultItemChangeAnimationManager(this)); setItemMoveAnimationsManager(new DefaultItemMoveAnimationManager(this)); }