Skip to content

Conversation

@AcarFurkan
Copy link
Contributor

@AcarFurkan AcarFurkan commented Feb 2, 2024

fix #139486

The expandedInsets property enhancement for the SegmentedButton widget introduces flexibility in button layout design within Flutter applications. When expandedInsets is not null, this property allows the SegmentedButton to expand, filling the available horizontal space of its parent container and also have the specified insets, thus ensuring a uniform distribution of segment widths across the button. Conversely, with expandedInsets is null, the widget sizes itself based on the intrinsic sizes of its segments, preserving the natural width of each segment. This addition enhances the adaptability of the SegmentedButton to various UI designs, enabling developers to achieve both expansive and compact button layouts seamlessly.

Setting expandedInsets = null

image

Setting expandedInsets = EdgeInsets.zero

image

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • All existing and new tests are passing.

fix flutter#139486

The isExpanded property enhancement for the SegmentedButton widget introduces flexibility in button layout design within Flutter applications. When set to true, this property allows the SegmentedButton to expand, filling the available horizontal space of its parent container, thus ensuring a uniform distribution of segment widths across the button. Conversely, with isExpanded set to false, the widget sizes itself based on the intrinsic sizes of its segments, preserving the natural width of each segment. This addition enhances the adaptability of the SegmentedButton to various UI designs, enabling developers to achieve both expansive and compact button layouts seamlessly.
@github-actions github-actions bot added framework flutter/packages/flutter repository. See also f: labels. f: material design flutter/packages/flutter/material repository. labels Feb 2, 2024
@AcarFurkan
Copy link
Contributor Author

@HansMuller Hi, can you check when you get free?

@HansMuller HansMuller requested a review from goderbauer February 2, 2024 22:36
@AcarFurkan
Copy link
Contributor Author

@goderbauer hi, do you have any feedback?

@AcarFurkan
Copy link
Contributor Author

@HansMuller hi, do you have any feedback? What should l do?

@AcarFurkan AcarFurkan requested a review from goderbauer March 18, 2024 10:47
@AcarFurkan AcarFurkan requested a review from goderbauer March 18, 2024 18:23
Copy link
Member

@goderbauer goderbauer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@goderbauer goderbauer requested a review from QuncCccccc March 18, 2024 19:37
/// If false (default), the button's size is based on the intrinsic
/// sizes of its segments, maintaining their natural width. Ideal for
/// maintaining consistent segment sizes regardless of the container size.
final bool isExpanded;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thanks a lot for the contribution!

If you want, I think we can also make it a little more complicated by changing it to final EdgeInsets? expandedInsets. So when it is EdgeInsets.zero, the segmented button will expand to fill its parent size and if we set a specific edgeInsets for it, the button can have the specified value of space around:) And the default is just null to show its original behavior.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah it is very logical. l sent a draft can you check. I'm not sure I understand correctly

@QuncCccccc
Copy link
Contributor

Oh it seems the second unit test is failed:
Screenshot 2024-03-18 at 1 24 25 PM

@AcarFurkan
Copy link
Contributor Author

AcarFurkan commented Mar 18, 2024

Oh it seems the second unit test is failed: Screenshot 2024-03-18 at 1 24 25 PM

image @QuncCccccc thanks for quick reply. The tests are running successfully in my locale. I didn't fully understand.

@AcarFurkan AcarFurkan requested a review from QuncCccccc March 19, 2024 11:54
@QuncCccccc QuncCccccc mentioned this pull request Mar 19, 2024
9 tasks
Copy link
Contributor

@QuncCccccc QuncCccccc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for the improvement!! That looks great! Just left two more comments, and then all good to go:)

@AcarFurkan AcarFurkan requested a review from QuncCccccc March 19, 2024 19:28
Copy link
Contributor

@QuncCccccc QuncCccccc left a 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 contribution!

@AcarFurkan
Copy link
Contributor Author

AcarFurkan commented Mar 19, 2024

Thanks for help

@QuncCccccc
Copy link
Contributor

It looks like the failure in linux web_tests_4 is because of #143932 (comment)
An issue is filed: #145527

To fix this test, we can do the same thing as the commit: c8a769f

@AcarFurkan AcarFurkan requested a review from QuncCccccc March 29, 2024 23:18
Copy link
Contributor

@QuncCccccc QuncCccccc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@AcarFurkan
Copy link
Contributor Author

LGTM

thanks for help :) should l do something else

@QuncCccccc QuncCccccc added the autosubmit Merge PR when tree becomes green via auto submit App label Apr 3, 2024
@auto-submit auto-submit bot merged commit e868e2b into flutter:master Apr 3, 2024
@QuncCccccc
Copy link
Contributor

LGTM

thanks for help :) should l do something else

Nope, just merged it:) Thanks for your contribution!

engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 3, 2024
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Apr 3, 2024
Roll Flutter from a418568 to e868e2b (34 revisions)

flutter/flutter@a418568...e868e2b

2024-04-03 [email protected] Add SegmentedButton expand feature (flutter/flutter#142804)
2024-04-03 [email protected] Roll Flutter Engine from e36b9b10c36f to 56fa2c33a5f7 (1 revision) (flutter/flutter#146205)
2024-04-03 [email protected] Roll Packages from 83f3842 to 0e848fa (3 revisions) (flutter/flutter#146201)
2024-04-03 [email protected] Enhance ColorScheme.fromSeed with a new `variant` parameter (flutter/flutter#144805)
2024-04-03 [email protected] Roll Flutter Engine from 0280de5be276 to e36b9b10c36f (1 revision) (flutter/flutter#146200)
2024-04-03 [email protected] Fix typos in bottom_sheet.dart (flutter/flutter#146188)
2024-04-03 [email protected] Roll Flutter Engine from 979030d81f8d to 0280de5be276 (2 revisions) (flutter/flutter#146199)
2024-04-03 [email protected] Roll Flutter Engine from bef3bbe3f74e to 979030d81f8d (1 revision) (flutter/flutter#146186)
2024-04-03 [email protected] Roll Flutter Engine from 5fc83bc24b2e to bef3bbe3f74e (1 revision) (flutter/flutter#146183)
2024-04-03 [email protected] Roll Flutter Engine from 0da1b2eb370a to 5fc83bc24b2e (1 revision) (flutter/flutter#146180)
2024-04-03 [email protected] Avoid calling `TextPainter.plainText` for simple static text (flutter/flutter#146084)
2024-04-03 [email protected] Roll Flutter Engine from e603f89844a9 to 0da1b2eb370a (2 revisions) (flutter/flutter#146179)
2024-04-03 [email protected] Roll Flutter Engine from ef60a95d78c1 to e603f89844a9 (3 revisions) (flutter/flutter#146177)
2024-04-03 [email protected] Fix chip baseline implementation (flutter/flutter#146162)
2024-04-03 [email protected] Roll Flutter Engine from bb4ec2d7eb39 to ef60a95d78c1 (1 revision) (flutter/flutter#146176)
2024-04-03 [email protected] Add tests for material_state_mouse_cursor.0.dart API example. (flutter/flutter#145987)
2024-04-03 [email protected] Update material_color_utilities package version to latest 0.11.1 (flutter/flutter#145959)
2024-04-03 [email protected] Roll Flutter Engine from 5f6dec8bd877 to bb4ec2d7eb39 (4 revisions) (flutter/flutter#146169)
2024-04-03 [email protected] Roll Flutter Engine from 5dbcfdc2a456 to 5f6dec8bd877 (1 revision) (flutter/flutter#146163)
2024-04-02 [email protected] Dispose FocusNode in tests. (flutter/flutter#146161)
2024-04-02 [email protected] Add `none` language strings to code blocks. (flutter/flutter#146154)
2024-04-02 [email protected] Refactor docs (flutter/flutter#145998)
2024-04-02 [email protected] Roll Flutter Engine from c60b00a20fc3 to 5dbcfdc2a456 (3 revisions) (flutter/flutter#146159)
2024-04-02 [email protected] Marks Linux_pixel_7pro complex_layout_scroll_perf_impeller__timeline_summary to be unflaky (flutter/flutter#140038)
2024-04-02 [email protected] Roll Flutter Engine from 5bf8b94505a4 to c60b00a20fc3 (2 revisions) (flutter/flutter#146157)
2024-04-02 [email protected] Refactor analyze (flutter/flutter#146138)
2024-04-02 [email protected] Implement SelectionArea triple click gestures (flutter/flutter#144563)
2024-04-02 [email protected] Roll Flutter Engine from 6883f7313da0 to 5bf8b94505a4 (2 revisions) (flutter/flutter#146152)
2024-04-02 [email protected] Fix border color is wrong for a focused and hovered TextField (flutter/flutter#146127)
2024-04-02 [email protected] Sync lints and enable `annotate_redeclares` (flutter/flutter#146144)
2024-04-02 [email protected] Implements `RenderBox.computeDryBaseline` for material render boxes (flutter/flutter#146027)
2024-04-02 [email protected] Roll Flutter Engine from 523fc953ebc8 to 6883f7313da0 (2 revisions) (flutter/flutter#146140)
2024-04-02 [email protected] Fix `MenuItemButton` overflow (flutter/flutter#143932)
2024-04-02 [email protected] Roll Packages from d5aff19 to 83f3842 (4 revisions) (flutter/flutter#146134)

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],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: 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

...
TecHaxter pushed a commit to TecHaxter/flutter_packages that referenced this pull request May 22, 2024
Roll Flutter from a418568 to e868e2b (34 revisions)

flutter/flutter@a418568...e868e2b

2024-04-03 [email protected] Add SegmentedButton expand feature (flutter/flutter#142804)
2024-04-03 [email protected] Roll Flutter Engine from e36b9b10c36f to 56fa2c33a5f7 (1 revision) (flutter/flutter#146205)
2024-04-03 [email protected] Roll Packages from 83f3842 to 0e848fa (3 revisions) (flutter/flutter#146201)
2024-04-03 [email protected] Enhance ColorScheme.fromSeed with a new `variant` parameter (flutter/flutter#144805)
2024-04-03 [email protected] Roll Flutter Engine from 0280de5be276 to e36b9b10c36f (1 revision) (flutter/flutter#146200)
2024-04-03 [email protected] Fix typos in bottom_sheet.dart (flutter/flutter#146188)
2024-04-03 [email protected] Roll Flutter Engine from 979030d81f8d to 0280de5be276 (2 revisions) (flutter/flutter#146199)
2024-04-03 [email protected] Roll Flutter Engine from bef3bbe3f74e to 979030d81f8d (1 revision) (flutter/flutter#146186)
2024-04-03 [email protected] Roll Flutter Engine from 5fc83bc24b2e to bef3bbe3f74e (1 revision) (flutter/flutter#146183)
2024-04-03 [email protected] Roll Flutter Engine from 0da1b2eb370a to 5fc83bc24b2e (1 revision) (flutter/flutter#146180)
2024-04-03 [email protected] Avoid calling `TextPainter.plainText` for simple static text (flutter/flutter#146084)
2024-04-03 [email protected] Roll Flutter Engine from e603f89844a9 to 0da1b2eb370a (2 revisions) (flutter/flutter#146179)
2024-04-03 [email protected] Roll Flutter Engine from ef60a95d78c1 to e603f89844a9 (3 revisions) (flutter/flutter#146177)
2024-04-03 [email protected] Fix chip baseline implementation (flutter/flutter#146162)
2024-04-03 [email protected] Roll Flutter Engine from bb4ec2d7eb39 to ef60a95d78c1 (1 revision) (flutter/flutter#146176)
2024-04-03 [email protected] Add tests for material_state_mouse_cursor.0.dart API example. (flutter/flutter#145987)
2024-04-03 [email protected] Update material_color_utilities package version to latest 0.11.1 (flutter/flutter#145959)
2024-04-03 [email protected] Roll Flutter Engine from 5f6dec8bd877 to bb4ec2d7eb39 (4 revisions) (flutter/flutter#146169)
2024-04-03 [email protected] Roll Flutter Engine from 5dbcfdc2a456 to 5f6dec8bd877 (1 revision) (flutter/flutter#146163)
2024-04-02 [email protected] Dispose FocusNode in tests. (flutter/flutter#146161)
2024-04-02 [email protected] Add `none` language strings to code blocks. (flutter/flutter#146154)
2024-04-02 [email protected] Refactor docs (flutter/flutter#145998)
2024-04-02 [email protected] Roll Flutter Engine from c60b00a20fc3 to 5dbcfdc2a456 (3 revisions) (flutter/flutter#146159)
2024-04-02 [email protected] Marks Linux_pixel_7pro complex_layout_scroll_perf_impeller__timeline_summary to be unflaky (flutter/flutter#140038)
2024-04-02 [email protected] Roll Flutter Engine from 5bf8b94505a4 to c60b00a20fc3 (2 revisions) (flutter/flutter#146157)
2024-04-02 [email protected] Refactor analyze (flutter/flutter#146138)
2024-04-02 [email protected] Implement SelectionArea triple click gestures (flutter/flutter#144563)
2024-04-02 [email protected] Roll Flutter Engine from 6883f7313da0 to 5bf8b94505a4 (2 revisions) (flutter/flutter#146152)
2024-04-02 [email protected] Fix border color is wrong for a focused and hovered TextField (flutter/flutter#146127)
2024-04-02 [email protected] Sync lints and enable `annotate_redeclares` (flutter/flutter#146144)
2024-04-02 [email protected] Implements `RenderBox.computeDryBaseline` for material render boxes (flutter/flutter#146027)
2024-04-02 [email protected] Roll Flutter Engine from 523fc953ebc8 to 6883f7313da0 (2 revisions) (flutter/flutter#146140)
2024-04-02 [email protected] Fix `MenuItemButton` overflow (flutter/flutter#143932)
2024-04-02 [email protected] Roll Packages from d5aff19 to 83f3842 (4 revisions) (flutter/flutter#146134)

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],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: 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

...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autosubmit Merge PR when tree becomes green via auto submit App f: material design flutter/packages/flutter/material repository. framework flutter/packages/flutter repository. See also f: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Proposal] Ability to allow children to flex in ToggleButtons and SegmentedButtons

3 participants