diff --git a/core/java/android/transition/Fade.java b/core/java/android/transition/Fade.java index 1f9d0932476f3..e7857c03d7ab0 100644 --- a/core/java/android/transition/Fade.java +++ b/core/java/android/transition/Fade.java @@ -145,11 +145,20 @@ public class Fade extends Visibility { private final View mView; private boolean mCanceled = false; private float mPausedAlpha = -1; + private boolean mLayerTypeChanged = false; public FadeAnimatorListener(View view) { mView = view; } + @Override + public void onAnimationStart(Animator animator) { + if (mView.hasOverlappingRendering() && mView.getLayerType() == View.LAYER_TYPE_NONE) { + mLayerTypeChanged = true; + mView.setLayerType(View.LAYER_TYPE_HARDWARE, null); + } + } + @Override public void onAnimationCancel(Animator animator) { mCanceled = true; @@ -163,6 +172,9 @@ public class Fade extends Visibility { if (!mCanceled) { mView.setTransitionAlpha(1); } + if (mLayerTypeChanged) { + mView.setLayerType(View.LAYER_TYPE_NONE, null); + } } @Override