diff --git a/lib/java/com/google/android/material/datepicker/MaterialDatePicker.java b/lib/java/com/google/android/material/datepicker/MaterialDatePicker.java index aa31ce7525f..4d8a64218c2 100644 --- a/lib/java/com/google/android/material/datepicker/MaterialDatePicker.java +++ b/lib/java/com/google/android/material/datepicker/MaterialDatePicker.java @@ -141,6 +141,8 @@ public String getHeaderText() { @Nullable private MaterialShapeDrawable background; private Button confirmButton; + private boolean edgeToEdgeEnabled; + @NonNull static MaterialDatePicker newInstance(@NonNull Builder options) { MaterialDatePicker materialDatePickerDialogFragment = new MaterialDatePicker<>(); @@ -307,7 +309,7 @@ public void onStart() { if (fullscreen) { window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); window.setBackgroundDrawable(background); - enableEdgeToEdge(window); + enableEdgeToEdgeIfNeeded(window); } else { window.setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); int inset = @@ -356,7 +358,11 @@ public final S getSelection() { return getDateSelector().getSelection(); } - private void enableEdgeToEdge(Window window) { + private void enableEdgeToEdgeIfNeeded(Window window) { + if (edgeToEdgeEnabled) { + // Avoid enabling edge-to-edge multiple times. + return; + } final View headerLayout = requireView().findViewById(R.id.fullscreen_header); EdgeToEdgeUtils.applyEdgeToEdge( window, true, ViewUtils.getBackgroundColor(headerLayout), null); @@ -380,6 +386,7 @@ public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) return insets; } }); + edgeToEdgeEnabled = true; } private void updateHeader() {