From 86afbe26d14f8da27025efe1a191c51ed2f0042a Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Wed, 22 Oct 2025 12:45:34 +0200 Subject: [PATCH] ViewGroup: don't request layout for addInLayout / removeInLayout --- src/api-impl/android/view/ViewGroup.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/api-impl/android/view/ViewGroup.java b/src/api-impl/android/view/ViewGroup.java index 2ae6244a..848d2483 100644 --- a/src/api-impl/android/view/ViewGroup.java +++ b/src/api-impl/android/view/ViewGroup.java @@ -63,6 +63,7 @@ public class ViewGroup extends View implements ViewParent, ViewManager { public void addView(View child, int index, LayoutParams params) { addViewInternal(child, index, params); + requestLayout(); } protected void addViewInternal(View child, int index, LayoutParams params) { @@ -79,8 +80,6 @@ public class ViewGroup extends View implements ViewParent, ViewManager { native_addView(widget, child.widget, index, params); if (onHierarchyChangeListener != null) onHierarchyChangeListener.onChildViewAdded(this, child); - - requestLayout(); } /* We never call this ourselves */ @@ -97,6 +96,8 @@ public class ViewGroup extends View implements ViewParent, ViewManager { protected boolean addViewInLayout(View child, int index, LayoutParams params, boolean preventRequestLayout) { addViewInternal(child, index, params); + if (!preventRequestLayout) + requestLayout(); return true; } @@ -116,6 +117,7 @@ public class ViewGroup extends View implements ViewParent, ViewManager { public void removeView(View child) { removeViewInternal(child); + requestLayout(); } public void removeViewInLayout(View child) { @@ -136,6 +138,7 @@ public class ViewGroup extends View implements ViewParent, ViewManager { onHierarchyChangeListener.onChildViewRemoved(this, child); } } + requestLayout(); } public void detachViewFromParent(int index) {