diff options
| -rw-r--r-- | core/java/android/view/ViewGroup.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index cf5e8cfc84aa..de07b328ee13 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -2637,6 +2637,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager for (int i = 0; i < count; i++) { children[i].dispatchDetachedFromWindow(); } + clearDisappearingChildren(); super.dispatchDetachedFromWindow(); } @@ -5304,8 +5305,17 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager * this if you don't want animations for exiting views to stack up. */ public void clearDisappearingChildren() { - if (mDisappearingChildren != null) { - mDisappearingChildren.clear(); + final ArrayList<View> disappearingChildren = mDisappearingChildren; + if (disappearingChildren != null) { + final int count = disappearingChildren.size(); + for (int i = 0; i < count; i++) { + final View view = disappearingChildren.get(i); + if (view.mAttachInfo != null) { + view.dispatchDetachedFromWindow(); + } + view.clearAnimation(); + } + disappearingChildren.clear(); invalidate(); } } |