Loading core/java/android/transition/Visibility.java +5 −5 Original line number Diff line number Diff line Loading @@ -445,7 +445,7 @@ public abstract class Visibility extends Transition { mForcedEndVisibility != -1; if (!isForcedVisibility) { originalVisibility = viewToKeep.getVisibility(); viewToKeep.setVisibility(View.VISIBLE); viewToKeep.setTransitionVisibility(View.VISIBLE); } Animator animator = onDisappear(sceneRoot, viewToKeep, startValues, endValues); if (animator != null) { Loading @@ -454,7 +454,7 @@ public abstract class Visibility extends Transition { animator.addListener(disappearListener); addListener(disappearListener); } else if (!isForcedVisibility) { viewToKeep.setVisibility(originalVisibility); viewToKeep.setTransitionVisibility(originalVisibility); } return animator; } Loading Loading @@ -516,14 +516,14 @@ public abstract class Visibility extends Transition { @Override public void onAnimationPause(Animator animation) { if (!mCanceled && !mIsForcedVisibility) { mView.setVisibility(mFinalVisibility); mView.setTransitionVisibility(mFinalVisibility); } } @Override public void onAnimationResume(Animator animation) { if (!mCanceled && !mIsForcedVisibility) { mView.setVisibility(View.VISIBLE); mView.setTransitionVisibility(View.VISIBLE); } } Loading Loading @@ -557,7 +557,7 @@ public abstract class Visibility extends Transition { if (mIsForcedVisibility) { mView.setTransitionAlpha(0); } else { mView.setVisibility(mFinalVisibility); mView.setTransitionVisibility(mFinalVisibility); } } } Loading core/java/android/view/GhostView.java +3 −7 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ public class GhostView extends View { mView = view; mView.mGhostView = this; final ViewGroup parent = (ViewGroup) mView.getParent(); setGhostedVisibility(View.INVISIBLE); mView.setTransitionVisibility(View.INVISIBLE); parent.invalidate(); } Loading @@ -66,19 +66,15 @@ public class GhostView extends View { super.setVisibility(visibility); if (mView.mGhostView == this) { int inverseVisibility = (visibility == View.VISIBLE) ? View.INVISIBLE : View.VISIBLE; setGhostedVisibility(inverseVisibility); mView.setTransitionVisibility(inverseVisibility); } } private void setGhostedVisibility(int visibility) { mView.mViewFlags = (mView.mViewFlags & ~View.VISIBILITY_MASK) | visibility; } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); if (!mBeingMoved) { setGhostedVisibility(View.VISIBLE); mView.setTransitionVisibility(View.VISIBLE); mView.mGhostView = null; final ViewGroup parent = (ViewGroup) mView.getParent(); if (parent != null) { Loading core/java/android/view/View.java +14 −0 Original line number Diff line number Diff line Loading @@ -8785,6 +8785,20 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } } /** * Change the visibility of the View without triggering any other changes. This is * important for transitions, where visibility changes should not adjust focus or * trigger a new layout. This is only used when the visibility has already been changed * and we need a transient value during an animation. When the animation completes, * the original visibility value is always restored. * * @param visibility One of {@link #VISIBLE}, {@link #INVISIBLE}, or {@link #GONE}. * @hide */ public void setTransitionVisibility(@Visibility int visibility) { mViewFlags = (mViewFlags & ~View.VISIBILITY_MASK) | visibility; } /** * Reset the flag indicating the accessibility state of the subtree rooted * at this view changed. Loading Loading
core/java/android/transition/Visibility.java +5 −5 Original line number Diff line number Diff line Loading @@ -445,7 +445,7 @@ public abstract class Visibility extends Transition { mForcedEndVisibility != -1; if (!isForcedVisibility) { originalVisibility = viewToKeep.getVisibility(); viewToKeep.setVisibility(View.VISIBLE); viewToKeep.setTransitionVisibility(View.VISIBLE); } Animator animator = onDisappear(sceneRoot, viewToKeep, startValues, endValues); if (animator != null) { Loading @@ -454,7 +454,7 @@ public abstract class Visibility extends Transition { animator.addListener(disappearListener); addListener(disappearListener); } else if (!isForcedVisibility) { viewToKeep.setVisibility(originalVisibility); viewToKeep.setTransitionVisibility(originalVisibility); } return animator; } Loading Loading @@ -516,14 +516,14 @@ public abstract class Visibility extends Transition { @Override public void onAnimationPause(Animator animation) { if (!mCanceled && !mIsForcedVisibility) { mView.setVisibility(mFinalVisibility); mView.setTransitionVisibility(mFinalVisibility); } } @Override public void onAnimationResume(Animator animation) { if (!mCanceled && !mIsForcedVisibility) { mView.setVisibility(View.VISIBLE); mView.setTransitionVisibility(View.VISIBLE); } } Loading Loading @@ -557,7 +557,7 @@ public abstract class Visibility extends Transition { if (mIsForcedVisibility) { mView.setTransitionAlpha(0); } else { mView.setVisibility(mFinalVisibility); mView.setTransitionVisibility(mFinalVisibility); } } } Loading
core/java/android/view/GhostView.java +3 −7 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ public class GhostView extends View { mView = view; mView.mGhostView = this; final ViewGroup parent = (ViewGroup) mView.getParent(); setGhostedVisibility(View.INVISIBLE); mView.setTransitionVisibility(View.INVISIBLE); parent.invalidate(); } Loading @@ -66,19 +66,15 @@ public class GhostView extends View { super.setVisibility(visibility); if (mView.mGhostView == this) { int inverseVisibility = (visibility == View.VISIBLE) ? View.INVISIBLE : View.VISIBLE; setGhostedVisibility(inverseVisibility); mView.setTransitionVisibility(inverseVisibility); } } private void setGhostedVisibility(int visibility) { mView.mViewFlags = (mView.mViewFlags & ~View.VISIBILITY_MASK) | visibility; } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); if (!mBeingMoved) { setGhostedVisibility(View.VISIBLE); mView.setTransitionVisibility(View.VISIBLE); mView.mGhostView = null; final ViewGroup parent = (ViewGroup) mView.getParent(); if (parent != null) { Loading
core/java/android/view/View.java +14 −0 Original line number Diff line number Diff line Loading @@ -8785,6 +8785,20 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } } /** * Change the visibility of the View without triggering any other changes. This is * important for transitions, where visibility changes should not adjust focus or * trigger a new layout. This is only used when the visibility has already been changed * and we need a transient value during an animation. When the animation completes, * the original visibility value is always restored. * * @param visibility One of {@link #VISIBLE}, {@link #INVISIBLE}, or {@link #GONE}. * @hide */ public void setTransitionVisibility(@Visibility int visibility) { mViewFlags = (mViewFlags & ~View.VISIBILITY_MASK) | visibility; } /** * Reset the flag indicating the accessibility state of the subtree rooted * at this view changed. Loading