diff options
| author | The Android Open Source Project <initial-contribution@android.com> | 2013-11-22 11:18:57 -0800 |
|---|---|---|
| committer | The Android Open Source Project <initial-contribution@android.com> | 2013-11-22 11:18:57 -0800 |
| commit | dbccd44a638ae8705a5b14bff8b2dd74abc26045 (patch) | |
| tree | 14bfabaf3f3c7be86dfc064e919e00433a0cf2bb /core/java/android/view/ViewOverlay.java | |
| parent | ecfae4f899873f224e1aeed076dc8a41f8884487 (diff) | |
| parent | b873a17ce7be0a9771c24999adca6964431728f6 (diff) | |
Merge commit 'b873a17ce7be0a9771c24999adca6964431728f6' into HEAD
Change-Id: I938755073e70602cc8f51ce9bd420fdcf870cecd
Diffstat (limited to 'core/java/android/view/ViewOverlay.java')
| -rw-r--r-- | core/java/android/view/ViewOverlay.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/core/java/android/view/ViewOverlay.java b/core/java/android/view/ViewOverlay.java index 55109397f595..975931ae859c 100644 --- a/core/java/android/view/ViewOverlay.java +++ b/core/java/android/view/ViewOverlay.java @@ -15,6 +15,7 @@ */ package android.view; +import android.animation.LayoutTransition; import android.content.Context; import android.graphics.Canvas; import android.graphics.Rect; @@ -169,6 +170,14 @@ public class ViewOverlay { child.offsetTopAndBottom(parentLocation[1] - hostViewLocation[1]); } parent.removeView(child); + if (parent.getLayoutTransition() != null) { + // LayoutTransition will cause the child to delay removal - cancel it + parent.getLayoutTransition().cancel(LayoutTransition.DISAPPEARING); + } + // fail-safe if view is still attached for any reason + if (child.getParent() != null) { + child.mParent = null; + } } super.addView(child); } @@ -291,6 +300,17 @@ public class ViewOverlay { } } + /** + * @hide + */ + @Override + protected ViewParent invalidateChildInParentFast(int left, int top, Rect dirty) { + if (mHostView instanceof ViewGroup) { + return ((ViewGroup) mHostView).invalidateChildInParentFast(left, top, dirty); + } + return null; + } + @Override public ViewParent invalidateChildInParent(int[] location, Rect dirty) { if (mHostView != null) { |
