Tapping a modal bottom sheet should not dismiss it by default #32528
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.
Description
As pointed out in #20720, our current implementation of the modal bottom sheets aren't following the Material spec, as tapping on a bottom sheet itself will dismiss the sheet. From the Material Guidelines, it should be dismissed by:
The app would be responsible for the first and last as it would be providing the controls in the sheet. The other two are already handled by the bottom sheet implementation, however we also dismiss on a tap.
This PR removes the GestureDetector responsible for dismissing the sheet when the user taps on it. While this doesn't technically break the API, it does change the behavior of modal bottom sheets to bring it in line with the spec.
In the unlikely event that an application actually wanted this behavior they could wrap their bottom sheet content in a GestureDetector to replicate the previous behavior:
Related Issues
Fixes: #20720
Tests
Modified the test to check to see if a tap doesn't dismiss the sheet.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes (
[x]
). This will ensure a smooth and quick review process.///
).flutter analyze --flutter-repo
) does not report any problems on my PR.Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?