-
Notifications
You must be signed in to change notification settings - Fork 29.7k
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. |
justinmc
left a comment
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.
justinmc
left a comment
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.
QuncCccccc
left a comment
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 [email protected] Roll Skia from a01ea49f53a4 to 956fd8b14e22 (1 revision) (flutter/flutter#169334) 2025-05-23 [email protected] Roll Dart SDK from 4de10a11ceb9 to 085f110ecf33 (1 revision) (flutter/flutter#169333) 2025-05-23 [email protected] Roll Skia from bcc7e7fce10e to a01ea49f53a4 (1 revision) (flutter/flutter#169329) 2025-05-23 [email protected] Roll Skia from 18b85aced9b7 to bcc7e7fce10e (3 revisions) (flutter/flutter#169323) 2025-05-23 [email protected] Roll Dart SDK from 2a45b2f88a4f to 4de10a11ceb9 (2 revisions) (flutter/flutter#169322) 2025-05-23 [email protected] Remove patching of `package_config.json` from Flutter Pub wrapper. (flutter/flutter#169306) 2025-05-23 [email protected] Add missing dart_dynamic_modules flag for iOS DDM simulator builds (flutter/flutter#169254) 2025-05-23 [email protected] Roll Skia from ea73ccdc1417 to 18b85aced9b7 (6 revisions) (flutter/flutter#169315) 2025-05-23 [email protected] Add flag to exclude focus for hidden children in Visibility, maintainFocusability. Set maintainFocusability to false in IndexedStack (flutter/flutter#159133) 2025-05-23 [email protected] [Reland2] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (flutter/flutter#169276) 2025-05-23 [email protected] Roll Dart SDK from 8f85d89fdc23 to 2a45b2f88a4f (6 revisions) (flutter/flutter#169312) 2025-05-23 [email protected] Removes unnecessary parentheses (flutter/flutter#169015) 2025-05-22 [email protected] Unpin test/test_core/test_api packages (flutter/flutter#169198) 2025-05-22 [email protected] [Engine] Fix an edge case of RoundSuperellipseParam::Contains with sharp corners (flutter/flutter#167977) 2025-05-22 [email protected] Replace goldens in test/cupertino/nav_bar_transition_test.dart (flutter/flutter#169172) 2025-05-22 [email protected] Roll Skia from 13a299964c9f to ea73ccdc1417 (35 revisions) (flutter/flutter#169303) 2025-05-22 [email protected] Increase sub-task timeout for Mac web_tool_tests (flutter/flutter#169307) 2025-05-22 [email protected] Fix crash on two finger selection gesture (flutter/flutter#168598) 2025-05-22 [email protected] Disable the ability to opt-out of `explicit-package-dependencies`. (flutter/flutter#169283) 2025-05-22 [email protected] Fixes tab semantics gets dropped if the child produce a semantics node (flutter/flutter#169233) 2025-05-22 [email protected] Skip `{PLAT}_web_tools_test#expression_evaluation_*_test.dart`, turning tree 🔴 (flutter/flutter#169305) 2025-05-22 [email protected] 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 [email protected] Increase sub-task timeout for `web_tool_tests_1_2` (flutter/flutter#169277) 2025-05-22 [email protected] refactor the usage of `MediaQuery.sizeOf(context).height` to use the new `.heightOf(context)` (flutter/flutter#168894) 2025-05-22 [email protected] [tool] Add --no-minify flag to JS Compiler (flutter/flutter#169102) 2025-05-22 [email protected] Update ButtonStyle documentation (flutter/flutter#168062) 2025-05-22 [email protected] Fix the issue where DropdownMenu disposes of the controller. (flutter/flutter#168541) 2025-05-22 [email protected] 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 [email protected] Roll Dart SDK from 56940edd099d to 8f85d89fdc23 (6 revisions) (flutter/flutter#169237) 2025-05-21 [email protected] Use gestureSettings.touchSlop in PrimaryPointerGestureRecognizer (flutter/flutter#161549) 2025-05-21 [email protected] Normalize BottomAppBarTheme (continue) (flutter/flutter#168966) 2025-05-21 [email protected] [Reland] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#168396) (flutter/flutter#168914) 2025-05-21 [email protected] Respect `calendarDelegate` in `showDateRangePicker` (flutter/flutter#168290) 2025-05-21 [email protected] Make `build_android_host_app_with_module_aar` build using an aar (flutter/flutter#169171) 2025-05-21 [email protected] Roll Dart SDK from 7c40eba6bf77 to 56940edd099d (flutter/flutter#169135) 2025-05-21 [email protected] 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 [email protected],[email protected] 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 [email protected] Roll Skia from a01ea49f53a4 to 956fd8b14e22 (1 revision) (flutter/flutter#169334) 2025-05-23 [email protected] Roll Dart SDK from 4de10a11ceb9 to 085f110ecf33 (1 revision) (flutter/flutter#169333) 2025-05-23 [email protected] Roll Skia from bcc7e7fce10e to a01ea49f53a4 (1 revision) (flutter/flutter#169329) 2025-05-23 [email protected] Roll Skia from 18b85aced9b7 to bcc7e7fce10e (3 revisions) (flutter/flutter#169323) 2025-05-23 [email protected] Roll Dart SDK from 2a45b2f88a4f to 4de10a11ceb9 (2 revisions) (flutter/flutter#169322) 2025-05-23 [email protected] Remove patching of `package_config.json` from Flutter Pub wrapper. (flutter/flutter#169306) 2025-05-23 [email protected] Add missing dart_dynamic_modules flag for iOS DDM simulator builds (flutter/flutter#169254) 2025-05-23 [email protected] Roll Skia from ea73ccdc1417 to 18b85aced9b7 (6 revisions) (flutter/flutter#169315) 2025-05-23 [email protected] Add flag to exclude focus for hidden children in Visibility, maintainFocusability. Set maintainFocusability to false in IndexedStack (flutter/flutter#159133) 2025-05-23 [email protected] [Reland2] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (flutter/flutter#169276) 2025-05-23 [email protected] Roll Dart SDK from 8f85d89fdc23 to 2a45b2f88a4f (6 revisions) (flutter/flutter#169312) 2025-05-23 [email protected] Removes unnecessary parentheses (flutter/flutter#169015) 2025-05-22 [email protected] Unpin test/test_core/test_api packages (flutter/flutter#169198) 2025-05-22 [email protected] [Engine] Fix an edge case of RoundSuperellipseParam::Contains with sharp corners (flutter/flutter#167977) 2025-05-22 [email protected] Replace goldens in test/cupertino/nav_bar_transition_test.dart (flutter/flutter#169172) 2025-05-22 [email protected] Roll Skia from 13a299964c9f to ea73ccdc1417 (35 revisions) (flutter/flutter#169303) 2025-05-22 [email protected] Increase sub-task timeout for Mac web_tool_tests (flutter/flutter#169307) 2025-05-22 [email protected] Fix crash on two finger selection gesture (flutter/flutter#168598) 2025-05-22 [email protected] Disable the ability to opt-out of `explicit-package-dependencies`. (flutter/flutter#169283) 2025-05-22 [email protected] Fixes tab semantics gets dropped if the child produce a semantics node (flutter/flutter#169233) 2025-05-22 [email protected] Skip `{PLAT}_web_tools_test#expression_evaluation_*_test.dart`, turning tree 🔴 (flutter/flutter#169305) 2025-05-22 [email protected] 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 [email protected] Increase sub-task timeout for `web_tool_tests_1_2` (flutter/flutter#169277) 2025-05-22 [email protected] refactor the usage of `MediaQuery.sizeOf(context).height` to use the new `.heightOf(context)` (flutter/flutter#168894) 2025-05-22 [email protected] [tool] Add --no-minify flag to JS Compiler (flutter/flutter#169102) 2025-05-22 [email protected] Update ButtonStyle documentation (flutter/flutter#168062) 2025-05-22 [email protected] Fix the issue where DropdownMenu disposes of the controller. (flutter/flutter#168541) 2025-05-22 [email protected] 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 [email protected] Roll Dart SDK from 56940edd099d to 8f85d89fdc23 (6 revisions) (flutter/flutter#169237) 2025-05-21 [email protected] Use gestureSettings.touchSlop in PrimaryPointerGestureRecognizer (flutter/flutter#161549) 2025-05-21 [email protected] Normalize BottomAppBarTheme (continue) (flutter/flutter#168966) 2025-05-21 [email protected] [Reland] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#168396) (flutter/flutter#168914) 2025-05-21 [email protected] Respect `calendarDelegate` in `showDateRangePicker` (flutter/flutter#168290) 2025-05-21 [email protected] Make `build_android_host_app_with_module_aar` build using an aar (flutter/flutter#169171) 2025-05-21 [email protected] Roll Dart SDK from 7c40eba6bf77 to 56940edd099d (flutter/flutter#169135) 2025-05-21 [email protected] 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 [email protected],[email protected] 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 [email protected] Roll Skia from a01ea49f53a4 to 956fd8b14e22 (1 revision) (flutter/flutter#169334) 2025-05-23 [email protected] Roll Dart SDK from 4de10a11ceb9 to 085f110ecf33 (1 revision) (flutter/flutter#169333) 2025-05-23 [email protected] Roll Skia from bcc7e7fce10e to a01ea49f53a4 (1 revision) (flutter/flutter#169329) 2025-05-23 [email protected] Roll Skia from 18b85aced9b7 to bcc7e7fce10e (3 revisions) (flutter/flutter#169323) 2025-05-23 [email protected] Roll Dart SDK from 2a45b2f88a4f to 4de10a11ceb9 (2 revisions) (flutter/flutter#169322) 2025-05-23 [email protected] Remove patching of `package_config.json` from Flutter Pub wrapper. (flutter/flutter#169306) 2025-05-23 [email protected] Add missing dart_dynamic_modules flag for iOS DDM simulator builds (flutter/flutter#169254) 2025-05-23 [email protected] Roll Skia from ea73ccdc1417 to 18b85aced9b7 (6 revisions) (flutter/flutter#169315) 2025-05-23 [email protected] Add flag to exclude focus for hidden children in Visibility, maintainFocusability. Set maintainFocusability to false in IndexedStack (flutter/flutter#159133) 2025-05-23 [email protected] [Reland2] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (flutter/flutter#169276) 2025-05-23 [email protected] Roll Dart SDK from 8f85d89fdc23 to 2a45b2f88a4f (6 revisions) (flutter/flutter#169312) 2025-05-23 [email protected] Removes unnecessary parentheses (flutter/flutter#169015) 2025-05-22 [email protected] Unpin test/test_core/test_api packages (flutter/flutter#169198) 2025-05-22 [email protected] [Engine] Fix an edge case of RoundSuperellipseParam::Contains with sharp corners (flutter/flutter#167977) 2025-05-22 [email protected] Replace goldens in test/cupertino/nav_bar_transition_test.dart (flutter/flutter#169172) 2025-05-22 [email protected] Roll Skia from 13a299964c9f to ea73ccdc1417 (35 revisions) (flutter/flutter#169303) 2025-05-22 [email protected] Increase sub-task timeout for Mac web_tool_tests (flutter/flutter#169307) 2025-05-22 [email protected] Fix crash on two finger selection gesture (flutter/flutter#168598) 2025-05-22 [email protected] Disable the ability to opt-out of `explicit-package-dependencies`. (flutter/flutter#169283) 2025-05-22 [email protected] Fixes tab semantics gets dropped if the child produce a semantics node (flutter/flutter#169233) 2025-05-22 [email protected] Skip `{PLAT}_web_tools_test#expression_evaluation_*_test.dart`, turning tree 🔴 (flutter/flutter#169305) 2025-05-22 [email protected] 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 [email protected] Increase sub-task timeout for `web_tool_tests_1_2` (flutter/flutter#169277) 2025-05-22 [email protected] refactor the usage of `MediaQuery.sizeOf(context).height` to use the new `.heightOf(context)` (flutter/flutter#168894) 2025-05-22 [email protected] [tool] Add --no-minify flag to JS Compiler (flutter/flutter#169102) 2025-05-22 [email protected] Update ButtonStyle documentation (flutter/flutter#168062) 2025-05-22 [email protected] Fix the issue where DropdownMenu disposes of the controller. (flutter/flutter#168541) 2025-05-22 [email protected] 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 [email protected] Roll Dart SDK from 56940edd099d to 8f85d89fdc23 (6 revisions) (flutter/flutter#169237) 2025-05-21 [email protected] Use gestureSettings.touchSlop in PrimaryPointerGestureRecognizer (flutter/flutter#161549) 2025-05-21 [email protected] Normalize BottomAppBarTheme (continue) (flutter/flutter#168966) 2025-05-21 [email protected] [Reland] Implements UISceneDelegate dynamically w/ FlutterLaunchEngine (#168396) (flutter/flutter#168914) 2025-05-21 [email protected] Respect `calendarDelegate` in `showDateRangePicker` (flutter/flutter#168290) 2025-05-21 [email protected] Make `build_android_host_app_with_module_aar` build using an aar (flutter/flutter#169171) 2025-05-21 [email protected] Roll Dart SDK from 7c40eba6bf77 to 56940edd099d (flutter/flutter#169135) 2025-05-21 [email protected] 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 [email protected],[email protected] on the revert to ensure that a human is aware of the problem. ...
Adds a new Scaffold param
bottomSheetScrimBuilderthat 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.