Repository navigation
[material_ui] Paint Dialog.fullscreen background color behind the keyboard - #13244
Merged
auto-submit[bot] merged 5 commits intoNov 6, 2026
Merged
Conversation
…board Dialog builds AnimatedPadding(viewInsets) -> Material, so when a text field inside a Dialog.fullscreen is focused the "fullscreen" surface shrinks to the area above the keyboard and the DialogRoute barrier is what sits behind the keyboard. On iOS 26 the keyboard is translucent, so the dimmed route underneath shows through under the dialog instead of the dialog's color. Since Dialog.fullscreen also removes viewInsets from its child, apps can't work around this from inside the dialog. For Dialog.fullscreen, the AnimatedPadding and MediaQuery.removeViewInsets now sit inside the Material, so the surface keeps covering the whole screen while the child is laid out above the keyboard exactly as before. Regular Dialogs are unchanged. Part of flutter/flutter#179482.
victorsanni
marked this pull request as ready for review
October 13, 2026 23:44
Contributor
There was a problem hiding this comment.
Code Review
This pull request modifies Dialog to keep the Material of a fullscreen dialog covering the entire screen behind the software keyboard, while keeping its child content above the keyboard. The view insets avoidance logic is refactored into a private helper method _avoidViewInsets and applied to both fullscreen and standard dialog layouts. Additionally, a widget test is added to verify this layout behavior, and a pending changelog entry is included. There are no review comments, and I have no feedback to provide.
elliette
self-requested a review
October 27, 2026 21:22
elliette
approved these changes
Nov 4, 2026
elliette
left a comment
Member
There was a problem hiding this comment.
Thanks! One suggestion but LGTM
flutter-zl
pushed a commit
to NemesisDevX/flutter
that referenced
this pull request
Nov 6, 2026
flutter/packages@0478162...63881f9 2026-11-06 [email protected] [material_ui] Paint Dialog.fullscreen background color behind the keyboard (flutter/packages#13244) 2026-11-05 [email protected] [material_ui] Add tabBar/tab roles and expanded state semantics (flutter/packages#13176) 2026-11-05 [email protected] [material_ui] Disable the DropdownButtonFormField decoration when the field is disabled (flutter/packages#13473) 2026-11-05 [email protected] [material_ui] Fix Switch throwing when first painted mid-animation (flutter/packages#13496) 2026-11-05 [email protected] [various] Add engineIdentifier to fake plugin registrars (flutter/packages#13574) 2026-11-05 [email protected] [google_sign_in] Allow GoogleSignIn-iOS 10 (flutter/packages#13306) 2026-11-05 [email protected] [material_ui] Hit test the floating label of InputDecorator at its painted position (flutter/packages#13326) 2026-11-05 [email protected] [material_ui] Fix InputDecorator intrinsic height when isDense or isC… (flutter/packages#13522) 2026-11-05 [email protected] [material_ui] Paint Scaffold persistent bottom sheet background color behind the keyboard (flutter/packages#13242) 2026-11-05 [email protected] [image_picker_ios] PR 5/5 Switch Pigeon to Swift and finish the Objective-C to Swift migration. (flutter/packages#13493) If this roll has caused a breakage, revert this CL and set the roller to dry run mode using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Found while investigating flutter/flutter#179482 (design: https://flutter.dev/go/ios-26-keyboard-bleed). Companion to #13242, which does the same for
Scaffoldpersistent bottom sheets.DialogbuildsAnimatedPadding(viewInsets)→Material, so when a text field inside aDialog.fullscreenis focused, the "fullscreen" surface shrinks to the area above the keyboard and theDialogRoutebarrier is what sits behind the keyboard. On iOS 26 the keyboard is translucent, so the dimmed route underneath shows through under the dialog instead of the dialog's color. SinceDialog.fullscreenalso removesviewInsetsfromchild, apps can't work around it from inside the dialog.For
Dialog.fullscreen, theAnimatedPaddingandMediaQuery.removeViewInsetsnow sit inside theMaterial, so the surface keeps covering the whole screen whilechildis laid out above the keyboard exactly as before. RegularDialogs are unchanged.Part of flutter/flutter#179482.
Before
After
Pre-Review Checklist
[shared_preferences]///).Footnotes
Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩ ↩2