diff --git a/src/api-impl/android/view/View.java b/src/api-impl/android/view/View.java index b8e3186b..f832cc8c 100644 --- a/src/api-impl/android/view/View.java +++ b/src/api-impl/android/view/View.java @@ -1876,13 +1876,17 @@ public class View implements Drawable.Callback { native_keep_screen_on(widget, true); } protected void onDetachedFromWindow() { - attachedToWindow = false; if (onAttachStateChangeListener != null) { onAttachStateChangeListener.onViewDetachedFromWindow(this); } if (keepScreenOn) native_keep_screen_on(widget, false); } + + void detachFromWindowInternal() { + onDetachedFromWindow(); + attachedToWindow = false; + } public void attachToWindowInternal() { onAttachedToWindow(); } diff --git a/src/api-impl/android/view/ViewGroup.java b/src/api-impl/android/view/ViewGroup.java index 690fe402..5074865f 100644 --- a/src/api-impl/android/view/ViewGroup.java +++ b/src/api-impl/android/view/ViewGroup.java @@ -103,7 +103,7 @@ public class ViewGroup extends View implements ViewParent, ViewManager { children.remove(child); native_removeView(widget, child.widget); if (isAttachedToWindow()) - child.onDetachedFromWindow(); + child.detachFromWindowInternal(); if (onHierarchyChangeListener != null) { onHierarchyChangeListener.onChildViewRemoved(this, child); } @@ -128,7 +128,7 @@ public class ViewGroup extends View implements ViewParent, ViewManager { it.remove(); native_removeView(widget, child.widget); if (isAttachedToWindow()) - child.onDetachedFromWindow(); + child.detachFromWindowInternal(); if (onHierarchyChangeListener != null) { onHierarchyChangeListener.onChildViewRemoved(this, child); } @@ -332,10 +332,10 @@ public class ViewGroup extends View implements ViewParent, ViewManager { } @Override - protected void onDetachedFromWindow() { - super.onDetachedFromWindow(); + protected void detachFromWindowInternal() { + super.detachFromWindowInternal(); for (View child: children) { - child.onDetachedFromWindow(); + child.detachFromWindowInternal(); } }