diff options
| -rw-r--r-- | core/java/android/app/ActivityTransitionCoordinator.java | 10 | ||||
| -rw-r--r-- | core/java/android/app/EnterTransitionCoordinator.java | 4 |
2 files changed, 10 insertions, 4 deletions
diff --git a/core/java/android/app/ActivityTransitionCoordinator.java b/core/java/android/app/ActivityTransitionCoordinator.java index 6458d6f9f799..ec21882f431e 100644 --- a/core/java/android/app/ActivityTransitionCoordinator.java +++ b/core/java/android/app/ActivityTransitionCoordinator.java @@ -206,6 +206,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { private ArrayList<Matrix> mSharedElementParentMatrices; private boolean mSharedElementTransitionComplete; private boolean mViewsTransitionComplete; + private ArrayList<View> mStrippedTransitioningViews = new ArrayList<>(); public ActivityTransitionCoordinator(Window window, ArrayList<String> allSharedElementNames, @@ -287,7 +288,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { View view = mTransitioningViews.get(i); if (!view.getGlobalVisibleRect(r)) { mTransitioningViews.remove(i); - showView(view, true); + mStrippedTransitioningViews.add(view); } } } @@ -360,6 +361,12 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { } } } + if (mStrippedTransitioningViews != null) { + for (int i = mStrippedTransitioningViews.size() - 1; i >= 0; i--) { + View view = mStrippedTransitioningViews.get(i); + set.excludeTarget(view, true); + } + } // By adding the transition after addTarget, we prevent addTarget from // affecting transition. set.addTransition(transition); @@ -679,6 +686,7 @@ abstract class ActivityTransitionCoordinator extends ResultReceiver { mWindow = null; mSharedElements.clear(); mTransitioningViews = null; + mStrippedTransitioningViews = null; mOriginalAlphas.clear(); mResultReceiver = null; mPendingTransition = null; diff --git a/core/java/android/app/EnterTransitionCoordinator.java b/core/java/android/app/EnterTransitionCoordinator.java index c6736eefbc71..27a02003669d 100644 --- a/core/java/android/app/EnterTransitionCoordinator.java +++ b/core/java/android/app/EnterTransitionCoordinator.java @@ -123,6 +123,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { mIsReadyForTransition = true; hideViews(mSharedElements); if (getViewsTransition() != null && mTransitioningViews != null) { + stripOffscreenViews(); hideViews(mTransitioningViews); } if (mIsReturning) { @@ -518,9 +519,6 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator { mIsViewsTransitionStarted = true; if (mTransitioningViews != null && !mTransitioningViews.isEmpty()) { viewsTransition = configureTransition(getViewsTransition(), true); - if (viewsTransition != null && !mIsReturning) { - stripOffscreenViews(); - } } if (viewsTransition == null) { viewsTransitionComplete(); |