@Override public void animateToVisibility(int visibility) { if (visibility == View.GONE) { ViewCompat.animate(mToolbar) .alpha(0) .setListener( new ViewPropertyAnimatorListenerAdapter() { private boolean mCanceled = false; @Override public void onAnimationEnd(View view) { if (!mCanceled) { mToolbar.setVisibility(View.GONE); } } @Override public void onAnimationCancel(View view) { mCanceled = true; } }); } else if (visibility == View.VISIBLE) { ViewCompat.animate(mToolbar) .alpha(1) .setListener( new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationStart(View view) { mToolbar.setVisibility(View.VISIBLE); } }); } }
private void animateChangeImpl(DefaultItemAnimator.ChangeInfo paramChangeInfo) { View localView = null; Object localObject = oldHolder; if (localObject == null) {} for (localObject = null;; localObject = itemView) { RecyclerView.ViewHolder localViewHolder = newHolder; if (localViewHolder != null) { localView = itemView; } if (localObject != null) { localObject = ViewCompat.animate((View)localObject).setDuration(getChangeDuration()); mChangeAnimations.add(oldHolder); ((ViewPropertyAnimatorCompat)localObject).translationX(toX - fromX); ((ViewPropertyAnimatorCompat)localObject).translationY(toY - fromY); ((ViewPropertyAnimatorCompat)localObject).alpha(0.0F).setListener(new DefaultItemAnimator.7(this, paramChangeInfo, (ViewPropertyAnimatorCompat)localObject)).start(); } if (localView != null) { localObject = ViewCompat.animate(localView); mChangeAnimations.add(newHolder); ((ViewPropertyAnimatorCompat)localObject).translationX(0.0F).translationY(0.0F).setDuration(getChangeDuration()).alpha(1.0F).setListener(new DefaultItemAnimator.8(this, paramChangeInfo, (ViewPropertyAnimatorCompat)localObject, localView)).start(); } return; } }
public void setError(@Nullable CharSequence error) { if (!isErrorEnabled() && TextUtils.isEmpty(error)) { return; } if (!TextUtils.isEmpty(error)) { ViewCompat.setAlpha(this.error, 0f); setErrorEnabled(true); this.error.setText(error); ViewCompat.animate(this.error) .alpha(1f) .setDuration(200) .setInterpolator(ScopeStealing.INTERPOLATOR) .start(); } else { if (isErrorEnabled()) { ViewCompat.animate(this.error) .alpha(1f) .setDuration(200) .setInterpolator(ScopeStealing.INTERPOLATOR) .setListener( new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { setErrorEnabled(false); } }) .start(); } } }
private void animateMoveImpl(RecyclerView.ViewHolder paramViewHolder, int paramInt1, int paramInt2, int paramInt3, int paramInt4) { Object localObject = itemView; paramInt1 = paramInt3 - paramInt1; paramInt2 = paramInt4 - paramInt2; if (paramInt1 != 0) { ViewCompat.animate((View)localObject).translationX(0.0F); } if (paramInt2 != 0) { ViewCompat.animate((View)localObject).translationY(0.0F); } localObject = ViewCompat.animate((View)localObject); mMoveAnimations.add(paramViewHolder); ((ViewPropertyAnimatorCompat)localObject).setDuration(getMoveDuration()).setListener(new DefaultItemAnimator.6(this, paramViewHolder, paramInt1, paramInt2, (ViewPropertyAnimatorCompat)localObject)).start(); }
@Override public void onDismissed(Snackbar snackbar, int event) { if (!mOnDismissedCalled) { // onDismissed is called multiple times mOnDismissedCalled = true; // !NOTE: here to secure bug with FABBehaviour where for some unknown reason fab wasn't // translated to original pos ViewCompat.animate(mMainActivity.getFabMenu()).translationY(0); if (!mUndoOnClickListener.undoTriggered()) { // undo not triggered ready to delete if (MyApplication.getWritableDatabase().deleteNote(mNote)) { // note deleted successfully BaseController baseController = BaseController.getInstance(); if (baseController.getControllerId() != Constants.CONTROLLER_BIN) { // item is still current controller, remove it new RemoveItemFromMainTask( MyApplication.getAppContext().getString(R.string.note_moved_to_bin)) .execute(mNote); } else { // if in bin controller add newly deleted note // !NOTE: delete mode is already set in db#deleteNote() baseController.onNewNoteAdded(mNote.getMode()); } } else { // failed to delete note, revert it back MyDebugger.log("Failed to send note to recycler bin!"); mMainActivity.mMainAdapter.addItem(mPosition, mNote); } } } }
private void animateAddImpl(final ViewHolder holder) { final View view = holder.itemView; mAddAnimations.add(holder); final ViewPropertyAnimatorCompat animation = ViewCompat.animate(view); animation .alpha(1) .setDuration(getAddDuration()) .setListener( new VpaListenerAdapter() { @Override public void onAnimationStart(View view) { dispatchAddStarting(holder); } @Override public void onAnimationCancel(View view) { ViewCompat.setAlpha(view, 1); } @Override public void onAnimationEnd(View view) { animation.setListener(null); dispatchAddFinished(holder); mAddAnimations.remove(holder); dispatchFinishedWhenDone(); } }) .start(); }
private void animFab(final float deltaY) { ViewCompat.animate(floatingActionButton) .translationYBy(deltaY) .setInterpolator(AnimUtils.FAST_OUT_SLOW_IN_INTERPOLATOR) .withLayer() .start(); }
private void animateOut(final BottomNavigationView bottomNavigationView) { ViewCompat.animate(bottomNavigationView) .translationY(bottomNavigationView.getHeight()) .setInterpolator(INTERPOLATOR) .withLayer() .setUpdateListener( new ViewPropertyAnimatorUpdateListener() { @Override public void onAnimationUpdate(final View view) { updateSnackBarMargin(view); } }) .setListener( new ViewPropertyAnimatorListener() { public void onAnimationStart(View view) { BottomNavigationBehavior.this.mIsAnimatingOut = true; } public void onAnimationCancel(View view) { BottomNavigationBehavior.this.mIsAnimatingOut = false; } public void onAnimationEnd(View view) { BottomNavigationBehavior.this.mIsAnimatingOut = false; } }) .start(); }
// if sdk < 14, just ignore because of min sdk is 14 private void animateOut(final FloatingActionButton button) { if (Build.VERSION.SDK_INT >= 14) { int translationY = button.getHeight() + getMarginBottom(button); ViewCompat.animate(button) .scaleX(0.0F) .scaleY(0.0F) .alpha(0.0F) .translationY(translationY) .setInterpolator(INTERPOLATOR) .withLayer() .setListener( new ViewPropertyAnimatorListener() { public void onAnimationStart(View view) { BetterFabBehavior.this.mIsAnimatingOut = true; } public void onAnimationCancel(View view) { BetterFabBehavior.this.mIsAnimatingOut = false; } public void onAnimationEnd(View view) { BetterFabBehavior.this.mIsAnimatingOut = false; view.setVisibility(View.GONE); } }) .start(); } }
@Override protected ViewPropertyAnimatorCompat animateAddImpl(ViewHolder holder) { return ViewCompat.animate(holder.itemView) .rotationY(0) .translationX(0) .setInterpolator(new BounceInterpolator()); }
protected void animateAddImpl(final RecyclerView.ViewHolder holder) { View view = holder.itemView; final ViewPropertyAnimatorCompat animation = ViewCompat.animate(view); this.mAddAnimations.add(holder); animation .alpha(1.0F) .setDuration(this.getAddDuration()) .setListener( new VpaListenerAdapter() { public void onAnimationStart(View view) { dispatchAddStarting(holder); } public void onAnimationCancel(View view) { ViewCompat.setAlpha(view, 1.0F); } public void onAnimationEnd(View view) { animation.setListener((ViewPropertyAnimatorListener) null); dispatchAddFinished(holder); mAddAnimations.remove(holder); dispatchFinishedWhenDone(); } }) .start(); }
@Override protected void animateAddImpl(final RecyclerView.ViewHolder holder) { ViewCompat.animate(holder.itemView) .alpha(1) .setDuration(getAddDuration()) .setListener(new DefaultAddVpaListener(holder)) .start(); }
private void animateMoveImpl(final ViewHolder holder, int fromX, int fromY, int toX, int toY) { final View view = holder.itemView; final int deltaX = toX - fromX; final int deltaY = toY - fromY; if (deltaX != 0) { ViewCompat.animate(view).translationX(0); } if (deltaY != 0) { ViewCompat.animate(view).translationY(0); } // TODO: make EndActions end listeners instead, since end actions aren't // called when // vpas are canceled (and can't end them. why?) // need listener functionality in VPACompat for this. Ick. mMoveAnimations.add(holder); final ViewPropertyAnimatorCompat animation = ViewCompat.animate(view); animation .setDuration(getMoveDuration()) .setListener( new VpaListenerAdapter() { @Override public void onAnimationStart(View view) { dispatchMoveStarting(holder); } @Override public void onAnimationCancel(View view) { if (deltaX != 0) { ViewCompat.setTranslationX(view, 0); } if (deltaY != 0) { ViewCompat.setTranslationY(view, 0); } } @Override public void onAnimationEnd(View view) { animation.setListener(null); dispatchMoveFinished(holder); mMoveAnimations.remove(holder); dispatchFinishedWhenDone(); } }) .start(); }
@Override protected void animateRemoveImpl(final RecyclerView.ViewHolder holder) { ViewCompat.animate(holder.itemView) .translationY(-holder.itemView.getHeight()) .alpha(0) .setDuration(getRemoveDuration()) .setListener(new DefaultRemoveVpaListener(holder)) .start(); }
void cancelAll(List<RecyclerView.ViewHolder> paramList) { int i = paramList.size() - 1; while (i >= 0) { ViewCompat.animate(getitemView).cancel(); i -= 1; } }
@Override protected ViewPropertyAnimatorCompat animateRemoveImpl(ViewHolder holder) { return ViewCompat.animate(holder.itemView) .rotationY(90) .translationX(-(holder.itemView.getMeasuredWidth() / 4)) .scaleX(0.5F) .scaleY(0.5F) .setInterpolator(new AccelerateInterpolator()); }
@Override public void animateAddImpl(ViewPropertyAnimatorListener listener) { ViewCompat.animate(itemView) .translationY(0) .alpha(1) .setDuration(500) .setListener(listener) .start(); }
@Override protected void animateRemoveImpl(final RecyclerView.ViewHolder holder) { ViewCompat.animate(holder.itemView) .rotationY(90) .setDuration(getRemoveDuration()) .setInterpolator(mInterpolator) .setListener(new DefaultRemoveVpaListener(holder)) .start(); }
@Override protected void animateRemoveImpl(final RecyclerView.ViewHolder holder) { ViewCompat.animate(holder.itemView) .scaleX(0) .scaleY(0) .setDuration(getRemoveDuration()) .setListener(new DefaultRemoveVpaListener(holder)) .start(); }
protected void animateRemoveImpl(final RecyclerView.ViewHolder holder) { final View view = holder.itemView; ViewCompat.animate(view).cancel(); ViewCompat.animate(view) .setDuration(getRemoveDuration()) .translationX(-mRecyclerView.getWidth()) .setListener( new VpaListenerAdapter() { @Override public void onAnimationEnd(View view) { ViewCompat.setTranslationX(view, -mRecyclerView.getWidth()); dispatchRemoveFinished(holder); mRemoveAnimations.remove(holder); dispatchFinishedWhenDone(); } }) .start(); mRemoveAnimations.add(holder); }
private void _showTapCount(int size) { _tapEventCountShow.setText(String.valueOf(size)); _tapEventCountShow.setVisibility(View.VISIBLE); _tapEventCountShow.setScaleX(1f); _tapEventCountShow.setScaleY(1f); ViewCompat.animate(_tapEventCountShow) .scaleXBy(-1f) .scaleYBy(-1f) .setDuration(800) .setStartDelay(100); }
protected void completeloading() { ViewCompat.animate(betterCircleBar) .alpha(0f) .withEndAction( new Runnable() { @Override public void run() { betterCircleBar.setVisibility(View.GONE); } }); }
@Override protected void animateAddImpl(final RecyclerView.ViewHolder holder) { ViewCompat.animate(holder.itemView) .scaleX(1) .scaleY(1) .setDuration(getAddDuration()) .setInterpolator(mInterpolator) .setListener(new DefaultAddVpaListener(holder)) .setStartDelay(getAddDelay(holder)) .start(); }
private void hiddenTitlebar() { ViewCompat.animate(mTitleRl) .translationY(-mTitleRl.getHeight()) .setInterpolator(new DecelerateInterpolator(2)) .setListener( new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { mIsHidden = true; } }) .start(); }
// if sdk < 14, just ignore because of min sdk is 14 private void animateIn(FloatingActionButton button) { button.setVisibility(View.VISIBLE); if (Build.VERSION.SDK_INT >= 14) { ViewCompat.animate(button) .scaleX(1.0F) .scaleY(1.0F) .alpha(1.0F) .translationY(0) .setInterpolator(INTERPOLATOR) .withLayer() .setListener(null) .start(); } }
private void animateAddImpl(final ViewHolder holder) { final View view = holder.itemView; final ViewPropertyAnimatorCompat animation = ViewCompat.animate(view); mAddAnimations.add(holder); float startX, startY; int position = (int) view.getTag(); if (position % 2 == 0) { startY = -100; startX = -width; } else { startY = 100; startX = width; } Log.d("test", String.valueOf(holder.getLayoutPosition())); ViewCompat.setTranslationX(view, startX); // 应该是相对偏移 ViewCompat.setTranslationY(view, startY); ViewCompat.setAlpha(view, 0); animation.setInterpolator(new OvershootInterpolator()); animation .alpha(1) .translationX(0) .translationY(0) .setDuration(getAddDuration()) .setListener( new VpaListenerAdapter() { @Override public void onAnimationStart(View view) { dispatchAddStarting(holder); } @Override public void onAnimationCancel(View view) { ViewCompat.setAlpha(view, 1); } @Override public void onAnimationEnd(View view) { animation.setListener(null); dispatchAddFinished(holder); mAddAnimations.remove(holder); dispatchFinishedWhenDone(); // 使用这个来复原 ViewCompat.setTranslationY(view, 0); } }) .start(); }
private static void slideInternal( final RecyclerView.ViewHolder holder, boolean horizontal, int translationX, int translationY) { if (!(holder instanceof SwipeableItemViewHolder)) { return; } final View containerView = ((SwipeableItemViewHolder) holder).getSwipeableContainerView(); ViewCompat.animate(containerView).cancel(); ViewCompat.setTranslationX(containerView, translationX); ViewCompat.setTranslationY(containerView, translationY); }
private void animateIn(BottomNavigationView bottomNavigationView) { ViewCompat.animate(bottomNavigationView) .translationY(0) .setInterpolator(INTERPOLATOR) .withLayer() .setUpdateListener( new ViewPropertyAnimatorUpdateListener() { @Override public void onAnimationUpdate(final View view) { updateSnackBarMargin(view); } }) .setListener(null) .start(); }
protected void animateAddImpl(final RecyclerView.ViewHolder holder) { final View view = holder.itemView; ViewCompat.animate(view).cancel(); ViewCompat.animate(view) .translationX(0) .setDuration(getAddDuration()) .setListener( new VpaListenerAdapter() { @Override public void onAnimationCancel(View view) { ViewCompat.setTranslationX(view, 0); } @Override public void onAnimationEnd(View view) { dispatchAddFinished(holder); mAddAnimations.remove(holder); dispatchFinishedWhenDone(); } }) .start(); mAddAnimations.add(holder); }
@Override public void exit() { ViewCompat.animate(rootView) .translationY(DensityUtil.getScreenHeight(SearchActivity.this)) .setDuration(Constants.MILLISECONDS_400) .setInterpolator(new LinearInterpolator()) .withLayer() .setListener( new ViewPropertyAnimatorListenerAdapter() { @Override public void onAnimationEnd(View view) { SearchActivity.this.finish(); } }); }