diff options
| -rw-r--r-- | core/java/android/transition/TransitionManager.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/core/java/android/transition/TransitionManager.java b/core/java/android/transition/TransitionManager.java index f8e8762ef592..c4ef77a3e7ae 100644 --- a/core/java/android/transition/TransitionManager.java +++ b/core/java/android/transition/TransitionManager.java @@ -189,6 +189,8 @@ public class TransitionManager { final ViewGroup sceneRoot = scene.getSceneRoot(); if (!sPendingTransitions.contains(sceneRoot)) { if (transition == null) { + exitPreviousScene(sceneRoot); + scene.enter(); } else { sPendingTransitions.add(sceneRoot); @@ -210,6 +212,14 @@ public class TransitionManager { } } + private static void exitPreviousScene(final ViewGroup sceneRoot) { + // Notify previous scene that it is being exited + final Scene previousScene = Scene.getCurrentScene(sceneRoot); + if (previousScene != null) { + previousScene.exit(); + } + } + @UnsupportedAppUsage private static ArrayMap<ViewGroup, ArrayList<Transition>> getRunningTransitions() { WeakReference<ArrayMap<ViewGroup, ArrayList<Transition>>> runningTransitions = @@ -339,11 +349,7 @@ public class TransitionManager { transition.captureValues(sceneRoot, true); } - // Notify previous scene that it is being exited - Scene previousScene = Scene.getCurrentScene(sceneRoot); - if (previousScene != null) { - previousScene.exit(); - } + exitPreviousScene(sceneRoot); } /** |