-
Notifications
You must be signed in to change notification settings - Fork 29.2k
Add bottomSheetScrimBuilder to Scaffold #167335
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
I am not sure if allowing null as a return value is necessary or desired, but it can make it easier for folks who want to just remove the scrim. Otherwise they would need to return a I'll add another test to check for null if we decide to allow it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm a fan of exposing a builder function like this as opposed to exposing a parameter for the barrier color or something like that.
I wonder if @QuncCccccc or anyone else has an opinion on whether exposing this is worth the maintenance cost? It seems like a yes from me by looking at the issue. It seems like a reasonable use case that is not currently doable without this new parameter.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the changes. Some comments but I like the new approach with a default builder.
aa45a84
to
bf0e785
Compare
9d3d9f2
to
a62a46d
Compare
Hi @justinmc! I have made the requested changes. Please take a look when you have the time. Thanks! |
918cb50
to
3016513
Compare
@RepliedSage11 It looks like there is a legit docs failure, can you take a look? |
09f5bfe
to
b67d9c5
Compare
@justinmc Tests are now passing |
Sorry for the delay, I owe you a re-review here next week. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍. I'll look for a secondary reviewer.
I really like the API now. Builder method that takes an animation and has a static default 👍
/// | ||
/// The builder receives the current [BuildContext] and an [Animation] as parameters. | ||
/// The [Animation] ranges from 0.0 to 1.0 based on how much the bottom sheet covers the screen. | ||
/// A value of 0.0 represents when the bottom sheet covers 70% of the screen, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where does that 70% value come from, is there a constant somewhere? Maybe the docs are fine as-is but I'm curious myself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It comes from 1 - _kBottomSheetDominatesPercentage
. I wouldn't be able to tell you why it is 0.7 though🙂. I guess it is some material guideline?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thinking about this, maybe some folks would want to animate the whole extent (so from 0% to 100%)? 70% to 100% is ok for the default builder, but might feel a bit limiting and arbitrary for custom builders?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True, but probably not in this PR. I'd wait until we know it's useful before building it.
This animation could be considered as fully opened to fully closed, wherever that is.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks for your contribution:)
Seems google testing keeps showing errors in all recent PRs. Rebased master to trigger the tests again. |
autosubmit label was removed for flutter/flutter/167335, because - The status or check suite Google testing has failed. Please fix the issues identified (or deflake) before re-applying this label. |
Roll Flutter from 33cdd8ef31dc to 85564cbba9e7 (39 revisions) flutter/flutter@33cdd8e...85564cb 2025-05-23 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Reland2] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#169276)" (flutter/flutter#169347) 2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from a01ea49f53a4 to 956fd8b14e22 (1 revision) (flutter/flutter#169334) 2025-05-23 engine-flutter-autoroll@skia.org Roll Dart SDK from 4de10a11ceb9 to 085f110ecf33 (1 revision) (flutter/flutter#169333) 2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from bcc7e7fce10e to a01ea49f53a4 (1 revision) (flutter/flutter#169329) 2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from 18b85aced9b7 to bcc7e7fce10e (3 revisions) (flutter/flutter#169323) 2025-05-23 engine-flutter-autoroll@skia.org Roll Dart SDK from 2a45b2f88a4f to 4de10a11ceb9 (2 revisions) (flutter/flutter#169322) 2025-05-23 matanlurey@users.noreply.github.com Remove patching of `package_config.json` from Flutter Pub wrapper. (flutter/flutter#169306) 2025-05-23 jsimionato@google.com Add missing dart_dynamic_modules flag for iOS DDM simulator builds (flutter/flutter#169254) 2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from ea73ccdc1417 to 18b85aced9b7 (6 revisions) (flutter/flutter#169315) 2025-05-23 simonhadenius@gmail.com Add flag to exclude focus for hidden children in Visibility, maintainFocusability. Set maintainFocusability to false in IndexedStack (flutter/flutter#159133) 2025-05-23 30870216+gaaclarke@users.noreply.github.com [Reland2] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (flutter/flutter#169276) 2025-05-23 engine-flutter-autoroll@skia.org Roll Dart SDK from 8f85d89fdc23 to 2a45b2f88a4f (6 revisions) (flutter/flutter#169312) 2025-05-23 52160996+FMorschel@users.noreply.github.com Removes unnecessary parentheses (flutter/flutter#169015) 2025-05-22 danny@tuppeny.com Unpin test/test_core/test_api packages (flutter/flutter#169198) 2025-05-22 dkwingsmt@users.noreply.github.com [Engine] Fix an edge case of RoundSuperellipseParam::Contains with sharp corners (flutter/flutter#167977) 2025-05-22 victorsanniay@gmail.com Replace goldens in test/cupertino/nav_bar_transition_test.dart (flutter/flutter#169172) 2025-05-22 engine-flutter-autoroll@skia.org Roll Skia from 13a299964c9f to ea73ccdc1417 (35 revisions) (flutter/flutter#169303) 2025-05-22 danny@tuppeny.com Increase sub-task timeout for Mac web_tool_tests (flutter/flutter#169307) 2025-05-22 rmolivares@renzo-olivares.dev Fix crash on two finger selection gesture (flutter/flutter#168598) 2025-05-22 matanlurey@users.noreply.github.com Disable the ability to opt-out of `explicit-package-dependencies`. (flutter/flutter#169283) 2025-05-22 47866232+chunhtai@users.noreply.github.com Fixes tab semantics gets dropped if the child produce a semantics node (flutter/flutter#169233) 2025-05-22 matanlurey@users.noreply.github.com Skip `{PLAT}_web_tools_test#expression_evaluation_*_test.dart`, turning tree 🔴 (flutter/flutter#169305) 2025-05-22 matanlurey@users.noreply.github.com Update tool-internal `generateLocalizations...()` to never use synthetic (`flutter_gen`) packages (flutter/flutter#169285) 2025-05-22 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Make `build_android_host_app_with_module_aar` build using an aar (#169171)" (flutter/flutter#169287) 2025-05-22 mdebbar@google.com Increase sub-task timeout for `web_tool_tests_1_2` (flutter/flutter#169277) 2025-05-22 mohellebiabdessalem@gmail.com refactor the usage of `MediaQuery.sizeOf(context).height` to use the new `.heightOf(context)` (flutter/flutter#168894) 2025-05-22 kevmoo@users.noreply.github.com [tool] Add --no-minify flag to JS Compiler (flutter/flutter#169102) 2025-05-22 bruno.leroux@gmail.com Update ButtonStyle documentation (flutter/flutter#168062) 2025-05-22 ybz975218925@live.com Fix the issue where DropdownMenu disposes of the controller. (flutter/flutter#168541) 2025-05-22 alex.medinsh@gmail.com Add bottomSheetScrimBuilder to Scaffold (flutter/flutter#167335) 2025-05-22 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Reland] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#168396) (#168914)" (flutter/flutter#169250) 2025-05-21 engine-flutter-autoroll@skia.org Roll Dart SDK from 56940edd099d to 8f85d89fdc23 (6 revisions) (flutter/flutter#169237) 2025-05-21 kyle.finlinson@verygood.ventures Use gestureSettings.touchSlop in PrimaryPointerGestureRecognizer (flutter/flutter#161549) 2025-05-21 huy@nevercode.io Normalize BottomAppBarTheme (continue) (flutter/flutter#168966) 2025-05-21 30870216+gaaclarke@users.noreply.github.com [Reland] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#168396) (flutter/flutter#168914) 2025-05-21 sarbagyastha@gmail.com Respect `calendarDelegate` in `showDateRangePicker` (flutter/flutter#168290) 2025-05-21 34871572+gmackall@users.noreply.github.com Make `build_android_host_app_with_module_aar` build using an aar (flutter/flutter#169171) 2025-05-21 jason-simmons@users.noreply.github.com Roll Dart SDK from 7c40eba6bf77 to 56940edd099d (flutter/flutter#169135) 2025-05-21 34465683+rkishan516@users.noreply.github.com Feat: Add full screen dialog support for dialog routes (flutter/flutter#167794) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC muhatashim@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. ...
…r#9315) Roll Flutter from 33cdd8ef31dc to 85564cbba9e7 (39 revisions) flutter/flutter@33cdd8e...85564cb 2025-05-23 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Reland2] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#169276)" (flutter/flutter#169347) 2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from a01ea49f53a4 to 956fd8b14e22 (1 revision) (flutter/flutter#169334) 2025-05-23 engine-flutter-autoroll@skia.org Roll Dart SDK from 4de10a11ceb9 to 085f110ecf33 (1 revision) (flutter/flutter#169333) 2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from bcc7e7fce10e to a01ea49f53a4 (1 revision) (flutter/flutter#169329) 2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from 18b85aced9b7 to bcc7e7fce10e (3 revisions) (flutter/flutter#169323) 2025-05-23 engine-flutter-autoroll@skia.org Roll Dart SDK from 2a45b2f88a4f to 4de10a11ceb9 (2 revisions) (flutter/flutter#169322) 2025-05-23 matanlurey@users.noreply.github.com Remove patching of `package_config.json` from Flutter Pub wrapper. (flutter/flutter#169306) 2025-05-23 jsimionato@google.com Add missing dart_dynamic_modules flag for iOS DDM simulator builds (flutter/flutter#169254) 2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from ea73ccdc1417 to 18b85aced9b7 (6 revisions) (flutter/flutter#169315) 2025-05-23 simonhadenius@gmail.com Add flag to exclude focus for hidden children in Visibility, maintainFocusability. Set maintainFocusability to false in IndexedStack (flutter/flutter#159133) 2025-05-23 30870216+gaaclarke@users.noreply.github.com [Reland2] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (flutter/flutter#169276) 2025-05-23 engine-flutter-autoroll@skia.org Roll Dart SDK from 8f85d89fdc23 to 2a45b2f88a4f (6 revisions) (flutter/flutter#169312) 2025-05-23 52160996+FMorschel@users.noreply.github.com Removes unnecessary parentheses (flutter/flutter#169015) 2025-05-22 danny@tuppeny.com Unpin test/test_core/test_api packages (flutter/flutter#169198) 2025-05-22 dkwingsmt@users.noreply.github.com [Engine] Fix an edge case of RoundSuperellipseParam::Contains with sharp corners (flutter/flutter#167977) 2025-05-22 victorsanniay@gmail.com Replace goldens in test/cupertino/nav_bar_transition_test.dart (flutter/flutter#169172) 2025-05-22 engine-flutter-autoroll@skia.org Roll Skia from 13a299964c9f to ea73ccdc1417 (35 revisions) (flutter/flutter#169303) 2025-05-22 danny@tuppeny.com Increase sub-task timeout for Mac web_tool_tests (flutter/flutter#169307) 2025-05-22 rmolivares@renzo-olivares.dev Fix crash on two finger selection gesture (flutter/flutter#168598) 2025-05-22 matanlurey@users.noreply.github.com Disable the ability to opt-out of `explicit-package-dependencies`. (flutter/flutter#169283) 2025-05-22 47866232+chunhtai@users.noreply.github.com Fixes tab semantics gets dropped if the child produce a semantics node (flutter/flutter#169233) 2025-05-22 matanlurey@users.noreply.github.com Skip `{PLAT}_web_tools_test#expression_evaluation_*_test.dart`, turning tree 🔴 (flutter/flutter#169305) 2025-05-22 matanlurey@users.noreply.github.com Update tool-internal `generateLocalizations...()` to never use synthetic (`flutter_gen`) packages (flutter/flutter#169285) 2025-05-22 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Make `build_android_host_app_with_module_aar` build using an aar (#169171)" (flutter/flutter#169287) 2025-05-22 mdebbar@google.com Increase sub-task timeout for `web_tool_tests_1_2` (flutter/flutter#169277) 2025-05-22 mohellebiabdessalem@gmail.com refactor the usage of `MediaQuery.sizeOf(context).height` to use the new `.heightOf(context)` (flutter/flutter#168894) 2025-05-22 kevmoo@users.noreply.github.com [tool] Add --no-minify flag to JS Compiler (flutter/flutter#169102) 2025-05-22 bruno.leroux@gmail.com Update ButtonStyle documentation (flutter/flutter#168062) 2025-05-22 ybz975218925@live.com Fix the issue where DropdownMenu disposes of the controller. (flutter/flutter#168541) 2025-05-22 alex.medinsh@gmail.com Add bottomSheetScrimBuilder to Scaffold (flutter/flutter#167335) 2025-05-22 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Reland] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#168396) (#168914)" (flutter/flutter#169250) 2025-05-21 engine-flutter-autoroll@skia.org Roll Dart SDK from 56940edd099d to 8f85d89fdc23 (6 revisions) (flutter/flutter#169237) 2025-05-21 kyle.finlinson@verygood.ventures Use gestureSettings.touchSlop in PrimaryPointerGestureRecognizer (flutter/flutter#161549) 2025-05-21 huy@nevercode.io Normalize BottomAppBarTheme (continue) (flutter/flutter#168966) 2025-05-21 30870216+gaaclarke@users.noreply.github.com [Reland] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#168396) (flutter/flutter#168914) 2025-05-21 sarbagyastha@gmail.com Respect `calendarDelegate` in `showDateRangePicker` (flutter/flutter#168290) 2025-05-21 34871572+gmackall@users.noreply.github.com Make `build_android_host_app_with_module_aar` build using an aar (flutter/flutter#169171) 2025-05-21 jason-simmons@users.noreply.github.com Roll Dart SDK from 7c40eba6bf77 to 56940edd099d (flutter/flutter#169135) 2025-05-21 34465683+rkishan516@users.noreply.github.com Feat: Add full screen dialog support for dialog routes (flutter/flutter#167794) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC muhatashim@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. ...
…r#9315) Roll Flutter from 33cdd8ef31dc to 85564cbba9e7 (39 revisions) flutter/flutter@33cdd8e...85564cb 2025-05-23 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Reland2] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#169276)" (flutter/flutter#169347) 2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from a01ea49f53a4 to 956fd8b14e22 (1 revision) (flutter/flutter#169334) 2025-05-23 engine-flutter-autoroll@skia.org Roll Dart SDK from 4de10a11ceb9 to 085f110ecf33 (1 revision) (flutter/flutter#169333) 2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from bcc7e7fce10e to a01ea49f53a4 (1 revision) (flutter/flutter#169329) 2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from 18b85aced9b7 to bcc7e7fce10e (3 revisions) (flutter/flutter#169323) 2025-05-23 engine-flutter-autoroll@skia.org Roll Dart SDK from 2a45b2f88a4f to 4de10a11ceb9 (2 revisions) (flutter/flutter#169322) 2025-05-23 matanlurey@users.noreply.github.com Remove patching of `package_config.json` from Flutter Pub wrapper. (flutter/flutter#169306) 2025-05-23 jsimionato@google.com Add missing dart_dynamic_modules flag for iOS DDM simulator builds (flutter/flutter#169254) 2025-05-23 engine-flutter-autoroll@skia.org Roll Skia from ea73ccdc1417 to 18b85aced9b7 (6 revisions) (flutter/flutter#169315) 2025-05-23 simonhadenius@gmail.com Add flag to exclude focus for hidden children in Visibility, maintainFocusability. Set maintainFocusability to false in IndexedStack (flutter/flutter#159133) 2025-05-23 30870216+gaaclarke@users.noreply.github.com [Reland2] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (flutter/flutter#169276) 2025-05-23 engine-flutter-autoroll@skia.org Roll Dart SDK from 8f85d89fdc23 to 2a45b2f88a4f (6 revisions) (flutter/flutter#169312) 2025-05-23 52160996+FMorschel@users.noreply.github.com Removes unnecessary parentheses (flutter/flutter#169015) 2025-05-22 danny@tuppeny.com Unpin test/test_core/test_api packages (flutter/flutter#169198) 2025-05-22 dkwingsmt@users.noreply.github.com [Engine] Fix an edge case of RoundSuperellipseParam::Contains with sharp corners (flutter/flutter#167977) 2025-05-22 victorsanniay@gmail.com Replace goldens in test/cupertino/nav_bar_transition_test.dart (flutter/flutter#169172) 2025-05-22 engine-flutter-autoroll@skia.org Roll Skia from 13a299964c9f to ea73ccdc1417 (35 revisions) (flutter/flutter#169303) 2025-05-22 danny@tuppeny.com Increase sub-task timeout for Mac web_tool_tests (flutter/flutter#169307) 2025-05-22 rmolivares@renzo-olivares.dev Fix crash on two finger selection gesture (flutter/flutter#168598) 2025-05-22 matanlurey@users.noreply.github.com Disable the ability to opt-out of `explicit-package-dependencies`. (flutter/flutter#169283) 2025-05-22 47866232+chunhtai@users.noreply.github.com Fixes tab semantics gets dropped if the child produce a semantics node (flutter/flutter#169233) 2025-05-22 matanlurey@users.noreply.github.com Skip `{PLAT}_web_tools_test#expression_evaluation_*_test.dart`, turning tree 🔴 (flutter/flutter#169305) 2025-05-22 matanlurey@users.noreply.github.com Update tool-internal `generateLocalizations...()` to never use synthetic (`flutter_gen`) packages (flutter/flutter#169285) 2025-05-22 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Make `build_android_host_app_with_module_aar` build using an aar (#169171)" (flutter/flutter#169287) 2025-05-22 mdebbar@google.com Increase sub-task timeout for `web_tool_tests_1_2` (flutter/flutter#169277) 2025-05-22 mohellebiabdessalem@gmail.com refactor the usage of `MediaQuery.sizeOf(context).height` to use the new `.heightOf(context)` (flutter/flutter#168894) 2025-05-22 kevmoo@users.noreply.github.com [tool] Add --no-minify flag to JS Compiler (flutter/flutter#169102) 2025-05-22 bruno.leroux@gmail.com Update ButtonStyle documentation (flutter/flutter#168062) 2025-05-22 ybz975218925@live.com Fix the issue where DropdownMenu disposes of the controller. (flutter/flutter#168541) 2025-05-22 alex.medinsh@gmail.com Add bottomSheetScrimBuilder to Scaffold (flutter/flutter#167335) 2025-05-22 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Reland] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#168396) (#168914)" (flutter/flutter#169250) 2025-05-21 engine-flutter-autoroll@skia.org Roll Dart SDK from 56940edd099d to 8f85d89fdc23 (6 revisions) (flutter/flutter#169237) 2025-05-21 kyle.finlinson@verygood.ventures Use gestureSettings.touchSlop in PrimaryPointerGestureRecognizer (flutter/flutter#161549) 2025-05-21 huy@nevercode.io Normalize BottomAppBarTheme (continue) (flutter/flutter#168966) 2025-05-21 30870216+gaaclarke@users.noreply.github.com [Reland] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#168396) (flutter/flutter#168914) 2025-05-21 sarbagyastha@gmail.com Respect `calendarDelegate` in `showDateRangePicker` (flutter/flutter#168290) 2025-05-21 34871572+gmackall@users.noreply.github.com Make `build_android_host_app_with_module_aar` build using an aar (flutter/flutter#169171) 2025-05-21 jason-simmons@users.noreply.github.com Roll Dart SDK from 7c40eba6bf77 to 56940edd099d (flutter/flutter#169135) 2025-05-21 34465683+rkishan516@users.noreply.github.com Feat: Add full screen dialog support for dialog routes (flutter/flutter#167794) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC muhatashim@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. ...
Adds a new Scaffold param
bottomSheetScrimBuilder
that allows to define a custom scrim instead of the default ModalBarrier.Fixes #109037
Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.