Invalidate entire scene root when executing the transition.
Bug 27778109 When switching from forced visibility to using real visibility, I didn't take into account the fact that invalidating INVISIBLE Views skip invalidation. This CL invalidates the scene root to ensure that the transition is properly executed. Change-Id: I092d0fe42229390927f7d1b65fc2b3ce5fc2938d
This commit is contained in:
@@ -537,12 +537,10 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
|
||||
setTransitioningViewsVisiblity(View.INVISIBLE, false);
|
||||
}
|
||||
TransitionManager.beginDelayedTransition(decorView, transition);
|
||||
if (startSharedElementTransition && !mSharedElementNames.isEmpty()) {
|
||||
mSharedElements.get(0).invalidate();
|
||||
}
|
||||
if (startEnterTransition) {
|
||||
setTransitioningViewsVisiblity(View.VISIBLE, true);
|
||||
setTransitioningViewsVisiblity(View.VISIBLE, false);
|
||||
}
|
||||
decorView.invalidate();
|
||||
} else {
|
||||
transitionStarted();
|
||||
}
|
||||
|
||||
@@ -268,7 +268,8 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator {
|
||||
if (transition != null && decorView != null && mTransitioningViews != null) {
|
||||
setTransitioningViewsVisiblity(View.VISIBLE, false);
|
||||
TransitionManager.beginDelayedTransition(decorView, transition);
|
||||
setTransitioningViewsVisiblity(View.INVISIBLE, true);
|
||||
setTransitioningViewsVisiblity(View.INVISIBLE, false);
|
||||
decorView.invalidate();
|
||||
} else {
|
||||
transitionStarted();
|
||||
}
|
||||
@@ -367,7 +368,7 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator {
|
||||
scheduleGhostVisibilityChange(View.VISIBLE);
|
||||
setGhostVisibility(View.VISIBLE);
|
||||
if (viewsTransition != null) {
|
||||
setTransitioningViewsVisiblity(View.INVISIBLE, true);
|
||||
setTransitioningViewsVisiblity(View.INVISIBLE, false);
|
||||
}
|
||||
decorView.invalidate();
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user