@@ -228,7 +228,8 @@ public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues
228228 }
229229
230230 // Next handle the normal matrix transform:
231- ObjectAnimator transformAnimator = createTransformAnimator (startValues , endValues );
231+ ObjectAnimator transformAnimator = createTransformAnimator (startValues , endValues ,
232+ handleParentChange );
232233
233234 if (handleParentChange && transformAnimator != null && mUseOverlay ) {
234235 createGhostView (sceneRoot , startValues , endValues );
@@ -238,7 +239,7 @@ public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues
238239 }
239240
240241 private ObjectAnimator createTransformAnimator (TransitionValues startValues ,
241- TransitionValues endValues ) {
242+ TransitionValues endValues , final boolean handleParentChange ) {
242243 Matrix startMatrix = (Matrix ) startValues .values .get (PROPNAME_MATRIX );
243244 Matrix endMatrix = (Matrix ) endValues .values .get (PROPNAME_MATRIX );
244245
@@ -277,7 +278,12 @@ public void onAnimationCancel(Animator animation) {
277278 @ Override
278279 public void onAnimationEnd (Animator animation ) {
279280 if (!mIsCanceled ) {
280- setCurrentMatrix (finalEndMatrix );
281+ if (handleParentChange && mUseOverlay ) {
282+ setCurrentMatrix (finalEndMatrix );
283+ } else {
284+ view .setTagInternal (R .id .transitionTransform , null );
285+ view .setTagInternal (R .id .parentMatrix , null );
286+ }
281287 }
282288 ANIMATION_MATRIX_PROPERTY .set (view , null );
283289 transforms .restore (view );
0 commit comments