diff --git a/lib/java/com/google/android/material/bottomsheet/BottomSheetBehavior.java b/lib/java/com/google/android/material/bottomsheet/BottomSheetBehavior.java index 36e54be0988..3b1463f5b0a 100644 --- a/lib/java/com/google/android/material/bottomsheet/BottomSheetBehavior.java +++ b/lib/java/com/google/android/material/bottomsheet/BottomSheetBehavior.java @@ -107,6 +107,8 @@ public abstract static class BottomSheetCallback { * expanded states and from -1 to 0 it is between hidden and collapsed states. */ public abstract void onSlide(@NonNull View bottomSheet, float slideOffset); + + void onLayout(@NonNull View bottomSheet) {} } /** The bottom sheet is dragging. */ @@ -553,6 +555,10 @@ public boolean onLayoutChild( } nestedScrollingChildRef = new WeakReference<>(findScrollingChild(child)); + + for (int i = 0; i < callbacks.size(); i++) { + callbacks.get(i).onLayout(child); + } return true; } diff --git a/lib/java/com/google/android/material/bottomsheet/BottomSheetDialog.java b/lib/java/com/google/android/material/bottomsheet/BottomSheetDialog.java index 262692f33ad..ee4dd7f4777 100644 --- a/lib/java/com/google/android/material/bottomsheet/BottomSheetDialog.java +++ b/lib/java/com/google/android/material/bottomsheet/BottomSheetDialog.java @@ -452,6 +452,11 @@ public void onSlide(@NonNull View bottomSheet, float slideOffset) { setPaddingForPosition(bottomSheet); } + @Override + void onLayout(@NonNull View bottomSheet) { + setPaddingForPosition(bottomSheet); + } + private void setPaddingForPosition(View bottomSheet) { if (bottomSheet.getTop() < insetsCompat.getSystemWindowInsetTop()) { // If the bottomsheet is light, we should set light status bar so the icons are visible