Skip to content

Commit

Permalink
Restore subclipping view removal (#48329)
Browse files Browse the repository at this point in the history
Summary:

With the call to `removeView()` removed from `ReactViewClippingManager` in #47634, we're seeing views erroneously sticking around in the layout.  

While `removeViewWithSubviewClippingEnabled()` calls `removeViewsInLayout()`, it does not trigger the corresponding side effects of [removeView()](https://android.googlesource.com/platform/frameworks/base/+/refs/tags/android-15.0.0_r9/core/java/android/view/ViewGroup.java#5501):
```
public void removeView(View view) {
  if (removeViewInternal(view)) {
--> requestLayout();
--> invalidate(true);
  }
}
```
To compensate, flip `removeViewsInLayout()` to [`removeViews()`](https://android.googlesource.com/platform/frameworks/base/+/refs/tags/android-15.0.0_r9/core/java/android/view/ViewGroup.java#5562), which will ensure layout.

Changelog: [Android][Fixed] Restore layout/invalidate during ReactViewClippingManager.removeViewAt()

Reviewed By: javache

Differential Revision: D67398971
  • Loading branch information
Thomas Nardone authored and facebook-github-bot committed Dec 19, 2024
1 parent ea56c43 commit 958f108
Showing 1 changed file with 1 addition and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -749,6 +749,7 @@ public void run() {
}
}
removeViewsInLayout(index - clippedSoFar, 1);
invalidate();
}
removeFromArray(index);
}
Expand Down

0 comments on commit 958f108

Please sign in to comment.