You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
prevent reference cycles between Java and native objects
This commit is contained in:
@@ -91,6 +91,8 @@ public class ViewGroup extends View implements ViewParent, ViewManager {
|
||||
child.parent = null;
|
||||
children.remove(child);
|
||||
native_removeView(widget, child.widget);
|
||||
if (isAttachedToWindow())
|
||||
child.onDetachedFromWindow();
|
||||
if (onHierarchyChangeListener != null) {
|
||||
onHierarchyChangeListener.onChildViewRemoved(this, child);
|
||||
}
|
||||
@@ -114,6 +116,8 @@ public class ViewGroup extends View implements ViewParent, ViewManager {
|
||||
child.parent = null;
|
||||
it.remove();
|
||||
native_removeView(widget, child.widget);
|
||||
if (isAttachedToWindow())
|
||||
child.onDetachedFromWindow();
|
||||
if (onHierarchyChangeListener != null) {
|
||||
onHierarchyChangeListener.onChildViewRemoved(this, child);
|
||||
}
|
||||
@@ -317,6 +321,14 @@ public class ViewGroup extends View implements ViewParent, ViewManager {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
for (View child: children) {
|
||||
child.onDetachedFromWindow();
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean isChildrenDrawingOrderEnabled() { return false; }
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user