-
Notifications
You must be signed in to change notification settings - Fork 28k
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
Support materialTapTargetSize in PopupMenuButton #158357
Conversation
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 the fix!
@@ -1565,6 +1566,17 @@ class PopupMenuButtonState<T> extends State<PopupMenuButton<T>> { | |||
child: widget.child, | |||
), | |||
); | |||
final MaterialTapTargetSize tapTargetSize = widget.style?.tapTargetSize ?? MaterialTapTargetSize.shrinkWrap; |
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 think here we can default to the ThemeData.materialTapTargetSize
value. Then here would be final MaterialTapTargetSize tapTargetSize = widget.style?.tapTargetSize ?? popupMenuTheme.tapTargetSize ?? Theme.of(context).materialTapTargetSize;
We can also add this property to PopupMenuTheme
so developers can control the button size easier:)
final MaterialTapTargetSize tapTargetSize = widget.style?.tapTargetSize ?? MaterialTapTargetSize.shrinkWrap; | |
final MaterialTapTargetSize tapTargetSize = widget.style?.tapTargetSize ?? Theme.of(context).materialTapTargetSize; |
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 tried this but
if it defaults to Theme.of(context).materialTapTargetSize, this PR will be a breaking change because some buttons' size will be increased to at least 48X48, looks like some flutter_cacoon tests are failing because of that.(some g3 tests too.)
since I can't apply a flutter_cacoon fix together with this PR. I'm thinking the only way to land this PR with it default to Theme.of(context).materialTapTargetSize is by 4 steps.
- Merge this PR with default to MaterialTapTargetSize.shrinkWrap so it's not a breaking change.
- Update flutter_cacoon tests and g3 tests to use MaterialTapTargetSize.padded in its PopupMenuButton
- Update PopupMenuButton to default to Theme.of(context).materialTapTargetSize
- Remove now redundant MaterialTapTargetSize.padded in flutter_cacoon tests and g3 tests
wdyt?
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 see. Sounds good to me! If we want to add this property to PopupMenuTheme, we can also add a separate PR later. This PR LGTM!
d50bbf3
to
379967d
Compare
Roll Flutter from c8510f29ccc2 to ed553d10cf63 (48 revisions) flutter/flutter@c8510f2...ed553d1 2024-11-13 [email protected] Avoid using platform `ProcessInfo.maxRss` in test. (flutter/flutter#158526) 2024-11-13 [email protected] Roll Packages from 72356fd to 26e123a (19 revisions) (flutter/flutter#158626) 2024-11-13 [email protected] Move `dart pub deps` call to `<Pub>.deps` and use it accordingly (flutter/flutter#158524) 2024-11-13 [email protected] Roll Flutter Engine from 05c14d8b4cd7 to db3e5af2ca22 (1 revision) (flutter/flutter#158553) 2024-11-13 [email protected] Roll Flutter Engine from ef760d6e1f13 to 05c14d8b4cd7 (3 revisions) (flutter/flutter#158551) 2024-11-13 [email protected] Roll Flutter Engine from 08348c9eebcc to ef760d6e1f13 (1 revision) (flutter/flutter#158545) 2024-11-13 [email protected] Marks Mac_arm64_ios hot_mode_dev_cycle_ios__benchmark to be flaky (flutter/flutter#158242) 2024-11-13 [email protected] Roll Flutter Engine from 877abb9ad6ff to 08348c9eebcc (8 revisions) (flutter/flutter#158541) 2024-11-13 [email protected] Allow `devDependencies` to be omitted and not cause a tool crash. (flutter/flutter#158518) 2024-11-13 [email protected] Explain how to use `flutter channel`. (flutter/flutter#158533) 2024-11-13 [email protected] Clean up dependabot config, add github-action group (flutter/flutter#158408) 2024-11-12 [email protected] Update test to include more complete instructions for how to run tests locally, add example to andoid 11 tests as well (flutter/flutter#158528) 2024-11-12 [email protected] force Linux plugin_test to run on Ubuntu 20.04 (flutter/flutter#158529) 2024-11-12 [email protected] Support materialTapTargetSize in PopupMenuButton (flutter/flutter#158357) 2024-11-12 [email protected] [SwiftPM] Update .flutter-plugin-dependencies format (flutter/flutter#158138) 2024-11-12 [email protected] add filesystem error handling to `systemTempDirectory` (flutter/flutter#158481) 2024-11-12 [email protected] Made Cupertino dialog more like a native dialog in dark mode (flutter/flutter#157218) 2024-11-12 [email protected] Roll Flutter Engine from b0a4ca92c49e to 877abb9ad6ff (2 revisions) (flutter/flutter#158506) 2024-11-12 [email protected] Fix `NavigationBar` label style customization on the widget level (flutter/flutter#158510) 2024-11-12 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Add test for `dynamic_content_color.0.dart` (#158309)" (flutter/flutter#158511) 2024-11-12 [email protected] Add test for `dynamic_content_color.0.dart` (flutter/flutter#158309) 2024-11-12 [email protected] Roll Flutter Engine from a672f971c659 to b0a4ca92c49e (2 revisions) (flutter/flutter#158488) 2024-11-12 [email protected] Roll Flutter Engine from 35041f118744 to a672f971c659 (1 revision) (flutter/flutter#158487) 2024-11-12 [email protected] Roll Flutter Engine from 7b3eacd20eb6 to 35041f118744 (9 revisions) (flutter/flutter#158485) 2024-11-11 [email protected] [SwiftPM] Simplify logic that determines if CocoaPods is used (flutter/flutter#158409) 2024-11-11 [email protected] Fix Chip draws `InkWell.hoverColor` is drawn on top of the provided background color with `hovered` state (flutter/flutter#158454) 2024-11-11 [email protected] Roll Flutter Engine from 3cb6f4de89b6 to 7b3eacd20eb6 (1 revision) (flutter/flutter#158464) 2024-11-11 [email protected] Roll Packages from bb5a258 to 72356fd (8 revisions) (flutter/flutter#158378) 2024-11-11 [email protected] Roll Flutter Engine from e9a44820f302 to 3cb6f4de89b6 (3 revisions) (flutter/flutter#158456) 2024-11-11 [email protected] Replace custom `RPCErrorCodes` with `RPCErrorKind` from `package:vm_service` (flutter/flutter#158379) 2024-11-11 [email protected] Roll Flutter Engine from d90e9f4718b8 to e9a44820f302 (1 revision) (flutter/flutter#158453) 2024-11-11 [email protected] Roll Flutter Engine from 01c76e42c20f to d90e9f4718b8 (1 revision) (flutter/flutter#158443) 2024-11-11 [email protected] Roll Flutter Engine from 9b4c3b3d5518 to 01c76e42c20f (3 revisions) (flutter/flutter#158438) 2024-11-11 [email protected] Remove block and line comments when detecting '.flutter-plugins' in settings.gradle(.kts) (flutter/flutter#155488) 2024-11-11 [email protected] Add `SafeArea` DartPad sample (flutter/flutter#158019) 2024-11-10 [email protected] Marks Linux analyzer_benchmark to be flaky (flutter/flutter#158244) 2024-11-10 [email protected] remove `bringup` status for recently re-subsharded targets (flutter/flutter#158217) 2024-11-09 [email protected] Roll Flutter Engine from 690cdfd09beb to 9b4c3b3d5518 (1 revision) (flutter/flutter#158418) 2024-11-09 [email protected] Marks Mac_benchmark complex_layout_scroll_perf_macos__timeline_summary to be flaky (flutter/flutter#158252) 2024-11-09 [email protected] Roll Flutter Engine from ca6f5110d9d3 to 690cdfd09beb (1 revision) (flutter/flutter#158414) 2024-11-09 [email protected] Roll Flutter Engine from 2f097cfd3d2d to ca6f5110d9d3 (3 revisions) (flutter/flutter#158411) 2024-11-09 [email protected] Roll Flutter Engine from 54df0b8a4784 to 2f097cfd3d2d (1 revision) (flutter/flutter#158407) 2024-11-08 [email protected] Roll Flutter Engine from b7134d373ef8 to 54df0b8a4784 (2 revisions) (flutter/flutter#158405) 2024-11-08 [email protected] Roll Flutter Engine from 6b77347edfc5 to b7134d373ef8 (3 revisions) (flutter/flutter#158402) 2024-11-08 [email protected] Roll Flutter Engine from 1b567e80386e to 6b77347edfc5 (4 revisions) (flutter/flutter#158398) 2024-11-08 [email protected] Roll Flutter Engine from a08bd5a07c2a to 1b567e80386e (1 revision) (flutter/flutter#158393) ...
fix #128697
PopupMenuButton can take customized child, in that case if
widgt.style.tapTargetSize
is set topadded
, PopupMenuButton should support it.if child is null, default child is an iconButton, which is already 48x48.
Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.