Fixing ExpansionTile expandedAlignment not Accepts AlignmentGeometry …#180814
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
There was a problem hiding this comment.
Code Review
This pull request correctly updates ExpansionTile.expandedAlignment to accept AlignmentGeometry, allowing for directional alignments. The new tests effectively validate this change. My feedback focuses on correcting some misleading comments within these new tests to improve clarity and maintainability.
| // Since expandedAlignment is set to AlignmentDirectional.centerStart, the column of children | ||
| // should be aligned to the center left of the expanded tile. This provides confirmation | ||
| // that the expandedCrossAxisAlignment.end is 700.0, where columnRect.left is. |
There was a problem hiding this comment.
The comment here is a bit misleading. In an RTL context, AlignmentDirectional.centerStart resolves to Alignment.centerRight, not center left. The phrasing about expandedCrossAxisAlignment.end is also confusing. I've suggested a clearer comment that accurately describes the behavior.
// With `textDirection` set to `TextDirection.rtl`, `AlignmentDirectional.centerStart`
// resolves to `Alignment.centerRight`. The column of children should be aligned to the
// center right of the expanded tile.| // Considering the value of expandedCrossAxisAlignment is CrossAxisAlignment.start, | ||
| // the offset of the left edge of both the children from X-axis should be 700.0. |
There was a problem hiding this comment.
The comment incorrectly states that expandedCrossAxisAlignment is CrossAxisAlignment.start, but it's set to CrossAxisAlignment.end in the test code. The assertions are correct for CrossAxisAlignment.end in an RTL context. The comment should be updated to match the code.
// With `textDirection` set to `TextDirection.rtl`, `CrossAxisAlignment.end` aligns children to the left.
// The offset of the left edge of both children from the X-axis should be 700.0.|
@jmagman @Piinks @TahaTesser |
victorsanni
left a comment
There was a problem hiding this comment.
Hi, thanks for the work here.
Changing the type of a public API is a breaking change. While we can't merge this change, isn't AlignmentGeometry.resolve a workaround for the linked issue?
|
@victorsanni thanks for your review , This is not a breaking change. The widget maintains full backward compatibility because we are simply widening the type definition. Since both Alignment and AlignmentDirectional inherit from AlignmentGeometry, existing code works exactly as it did before, but we now have the capability to support Directionality contexts. class AlignmentDirectional extends AlignmentGeometry
class Alignment extends AlignmentGeometryOld usage works unchanged: expandedAlignment: Alignment.centerRight,New capability is now supported: expandedAlignment: AlignmentDirectional.centerStart,
|
I agree, thanks for the clarification. The relationship between Alignment, AlignmentDirectional and AlignmentGeometry was unclear to me but I have a better understanding now. |
|
@victorsanni you are very welcome , thanks a lot for your review |
victorsanni
left a comment
There was a problem hiding this comment.
To fix Linux analyze, run dart format packages/flutter/lib/src/material/expansion_tile.dart.
Also the files AppFrameworkInfo.plist and Runner.xcscheme should remain unedited? Is there a reason why they are?
|
@victorsanni , The files changed because I had the hello_world example running. I’ll make sure to revert the changes. |
|
@victorsanni I reverted the hello_world changes; the files are now clean. |
Co-authored-by: Victor Sanni <victorsanniay@gmail.com>
dkwingsmt
left a comment
There was a problem hiding this comment.
Generally LGTM except for the comments.
| // Since expandedAlignment is set to AlignmentDirectional.centerStart, the column of children | ||
| // should be aligned to the center left of the expanded tile. This provides confirmation | ||
| // that the expandedCrossAxisAlignment.end is 700.0, where columnRect.left is. |
| // Considering the value of expandedCrossAxisAlignment is CrossAxisAlignment.start, | ||
| // the offset of the left edge of both the children from X-axis should be 700.0. |
…rtl` alignment and fix minor formatting in `expandedAlignment` declaration.
devnoaman
left a comment
There was a problem hiding this comment.
@dkwingsmt I have resolved the confused comments inside expansion tile widget , your review is valuable .
flutter#180814) <!-- Thanks for filing a pull request! Reviewers are typically assigned within a week of filing a request. To learn more about code review, see our documentation on Tree Hygiene: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md --> *the expandedAlignment defined as Alignment , not as AlignmentGeometry even if _buildBody returns Align widget which accepts alignment property as AlignmentGeometry.* flutter#180813 ## I have included 2 tests in the [flutter/tests] : 1- ExpansionTile expandedAlignment with directional test 2-ExpansionTile expandedCrossAxisAlignment with directional expandedAlignment test ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. --------- Co-authored-by: Victor Sanni <victorsanniay@gmail.com> Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
…11088) Manual roll Flutter from c023e5b2474f to 91b2d41a66d1 (31 revisions) Manual roll requested by tarrinneal@google.com flutter/flutter@c023e5b...91b2d41 2026-02-19 31859944+LongCatIsLooong@users.noreply.github.com Reland #179643, only scroll hit-testable primary scroll views on status bar tap (flutter/flutter#182391) 2026-02-19 116356835+AbdeMohlbi@users.noreply.github.com Replace References to `flutter/engine` with `flutter/flutter` (flutter/flutter#182600) 2026-02-19 104009581+Saqib198@users.noreply.github.com Remove specific iOS extended attributes to fix code signing (flutter/flutter#180710) 2026-02-19 jason-simmons@users.noreply.github.com Manual roll Skia from 7bbdc51ab0aa to ce5854495a3a (flutter/flutter#182637) 2026-02-19 41930132+hellohuanlin@users.noreply.github.com [pv]add integration test for original untappable web view link behind context menu bug (flutter/flutter#182111) 2026-02-19 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#182579) 2026-02-19 brackenavaron@gmail.com Remove Material import from scroll_view_test.dart (flutter/flutter#181281) 2026-02-19 victorsanniay@gmail.com Add RawTooltip.ignorePointer (flutter/flutter#182527) 2026-02-19 mdebbar@google.com [web] Stop double loading fonts for WebParagraph (flutter/flutter#182026) 2026-02-19 1063596+reidbaker@users.noreply.github.com Migrate abi build paths to use new abi filtering api #AGP9 (flutter/flutter#181828) 2026-02-19 mdebbar@google.com [web] Flutter errors should be reported with console.error() (flutter/flutter#178886) 2026-02-19 engine-flutter-autoroll@skia.org Manual roll Skia from dfe78d132e24 to 7bbdc51ab0aa (8 revisions) (flutter/flutter#182612) 2026-02-19 ahabeeblahi1@gmail.com Refactor autofill_group_test.dart to remove Material dependencies (flutter/flutter#181903) 2026-02-19 engine-flutter-autoroll@skia.org Roll Packages from 59f905c to 9da22bf (8 revisions) (flutter/flutter#182611) 2026-02-19 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from Ihau0pUz3u5ajw42u... to KfPgw04T0OEADLJA5... (flutter/flutter#182607) 2026-02-19 magder@google.com Marks Mac_arm64_mokey entrypoint_dart_registrant unflaky (flutter/flutter#181648) 2026-02-19 34465683+rkishan516@users.noreply.github.com Remove material from Modal barrier tests (flutter/flutter#181708) 2026-02-19 34465683+rkishan516@users.noreply.github.com Remove material from ticker mode test (flutter/flutter#181696) 2026-02-19 34465683+rkishan516@users.noreply.github.com Remove material imports from Inherited Model, Magnifier, SafeArea, UndoHistory, Navigator and Layers test (flutter/flutter#181709) 2026-02-19 161609011+Akshat-Shuklaaa@users.noreply.github.com docs: fix grammar in animation library documentation (flutter/flutter#182461) 2026-02-19 ahmedsameha1@gmail.com Handle#6537 first grouped tests (flutter/flutter#182077) 2026-02-19 ahabeeblahi1@gmail.com Move SelectionArea web test from widgets to material folder (flutter/flutter#181951) 2026-02-19 engine-flutter-autoroll@skia.org Roll Dart SDK from 44895e617182 to 2642761fca94 (6 revisions) (flutter/flutter#182572) 2026-02-19 okorohelijah@google.com Update create template to always generate both SwiftPM and CocoaPods support for iOS/macOS plugins (flutter/flutter#181251) 2026-02-18 74812392+akhil-ge0rge@users.noreply.github.com Fix(Material): DateRangePicker ignores DatePickerTheme.dayShape (flutter/flutter#181658) 2026-02-18 83986256+devnoaman@users.noreply.github.com Fixing ExpansionTile expandedAlignment not Accepts AlignmentGeometry … (flutter/flutter#180814) 2026-02-18 15619084+vashworth@users.noreply.github.com Give guided error message when CocoaPod and SwiftPM dependency conflicts (flutter/flutter#182392) 2026-02-18 brackenavaron@gmail.com Remove material from interactive_viewer_test.dart (flutter/flutter#181465) 2026-02-18 dkwingsmt@users.noreply.github.com Bring Windows misc coverage out of bringup (flutter/flutter#182332) 2026-02-18 34871572+gmackall@users.noreply.github.com Update android symbolication instructions (flutter/flutter#181267) 2026-02-18 34871572+gmackall@users.noreply.github.com Unmark stable vulkan platform view tests as bringup (flutter/flutter#182554) 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 stuartmorgan@google.com,tarrinneal@google.com 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 Documentation for the AutoRoller is here: ...
flutter#180814) <!-- Thanks for filing a pull request! Reviewers are typically assigned within a week of filing a request. To learn more about code review, see our documentation on Tree Hygiene: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md --> *the expandedAlignment defined as Alignment , not as AlignmentGeometry even if _buildBody returns Align widget which accepts alignment property as AlignmentGeometry.* flutter#180813 ## I have included 2 tests in the [flutter/tests] : 1- ExpansionTile expandedAlignment with directional test 2-ExpansionTile expandedCrossAxisAlignment with directional expandedAlignment test ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. --------- Co-authored-by: Victor Sanni <victorsanniay@gmail.com> Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
…lutter#11088) Manual roll Flutter from c023e5b2474f to 91b2d41a66d1 (31 revisions) Manual roll requested by tarrinneal@google.com flutter/flutter@c023e5b...91b2d41 2026-02-19 31859944+LongCatIsLooong@users.noreply.github.com Reland #179643, only scroll hit-testable primary scroll views on status bar tap (flutter/flutter#182391) 2026-02-19 116356835+AbdeMohlbi@users.noreply.github.com Replace References to `flutter/engine` with `flutter/flutter` (flutter/flutter#182600) 2026-02-19 104009581+Saqib198@users.noreply.github.com Remove specific iOS extended attributes to fix code signing (flutter/flutter#180710) 2026-02-19 jason-simmons@users.noreply.github.com Manual roll Skia from 7bbdc51ab0aa to ce5854495a3a (flutter/flutter#182637) 2026-02-19 41930132+hellohuanlin@users.noreply.github.com [pv]add integration test for original untappable web view link behind context menu bug (flutter/flutter#182111) 2026-02-19 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#182579) 2026-02-19 brackenavaron@gmail.com Remove Material import from scroll_view_test.dart (flutter/flutter#181281) 2026-02-19 victorsanniay@gmail.com Add RawTooltip.ignorePointer (flutter/flutter#182527) 2026-02-19 mdebbar@google.com [web] Stop double loading fonts for WebParagraph (flutter/flutter#182026) 2026-02-19 1063596+reidbaker@users.noreply.github.com Migrate abi build paths to use new abi filtering api #AGP9 (flutter/flutter#181828) 2026-02-19 mdebbar@google.com [web] Flutter errors should be reported with console.error() (flutter/flutter#178886) 2026-02-19 engine-flutter-autoroll@skia.org Manual roll Skia from dfe78d132e24 to 7bbdc51ab0aa (8 revisions) (flutter/flutter#182612) 2026-02-19 ahabeeblahi1@gmail.com Refactor autofill_group_test.dart to remove Material dependencies (flutter/flutter#181903) 2026-02-19 engine-flutter-autoroll@skia.org Roll Packages from 59f905c to 9da22bf (8 revisions) (flutter/flutter#182611) 2026-02-19 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from Ihau0pUz3u5ajw42u... to KfPgw04T0OEADLJA5... (flutter/flutter#182607) 2026-02-19 magder@google.com Marks Mac_arm64_mokey entrypoint_dart_registrant unflaky (flutter/flutter#181648) 2026-02-19 34465683+rkishan516@users.noreply.github.com Remove material from Modal barrier tests (flutter/flutter#181708) 2026-02-19 34465683+rkishan516@users.noreply.github.com Remove material from ticker mode test (flutter/flutter#181696) 2026-02-19 34465683+rkishan516@users.noreply.github.com Remove material imports from Inherited Model, Magnifier, SafeArea, UndoHistory, Navigator and Layers test (flutter/flutter#181709) 2026-02-19 161609011+Akshat-Shuklaaa@users.noreply.github.com docs: fix grammar in animation library documentation (flutter/flutter#182461) 2026-02-19 ahmedsameha1@gmail.com Handle#6537 first grouped tests (flutter/flutter#182077) 2026-02-19 ahabeeblahi1@gmail.com Move SelectionArea web test from widgets to material folder (flutter/flutter#181951) 2026-02-19 engine-flutter-autoroll@skia.org Roll Dart SDK from 44895e617182 to 2642761fca94 (6 revisions) (flutter/flutter#182572) 2026-02-19 okorohelijah@google.com Update create template to always generate both SwiftPM and CocoaPods support for iOS/macOS plugins (flutter/flutter#181251) 2026-02-18 74812392+akhil-ge0rge@users.noreply.github.com Fix(Material): DateRangePicker ignores DatePickerTheme.dayShape (flutter/flutter#181658) 2026-02-18 83986256+devnoaman@users.noreply.github.com Fixing ExpansionTile expandedAlignment not Accepts AlignmentGeometry … (flutter/flutter#180814) 2026-02-18 15619084+vashworth@users.noreply.github.com Give guided error message when CocoaPod and SwiftPM dependency conflicts (flutter/flutter#182392) 2026-02-18 brackenavaron@gmail.com Remove material from interactive_viewer_test.dart (flutter/flutter#181465) 2026-02-18 dkwingsmt@users.noreply.github.com Bring Windows misc coverage out of bringup (flutter/flutter#182332) 2026-02-18 34871572+gmackall@users.noreply.github.com Update android symbolication instructions (flutter/flutter#181267) 2026-02-18 34871572+gmackall@users.noreply.github.com Unmark stable vulkan platform view tests as bringup (flutter/flutter#182554) 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 stuartmorgan@google.com,tarrinneal@google.com 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 Documentation for the AutoRoller is here: ...
flutter#180814) <!-- Thanks for filing a pull request! Reviewers are typically assigned within a week of filing a request. To learn more about code review, see our documentation on Tree Hygiene: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md --> *the expandedAlignment defined as Alignment , not as AlignmentGeometry even if _buildBody returns Align widget which accepts alignment property as AlignmentGeometry.* flutter#180813 ## I have included 2 tests in the [flutter/tests] : 1- ExpansionTile expandedAlignment with directional test 2-ExpansionTile expandedCrossAxisAlignment with directional expandedAlignment test ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. --------- Co-authored-by: Victor Sanni <victorsanniay@gmail.com> Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
…lutter#11088) Manual roll Flutter from c023e5b2474f to 91b2d41a66d1 (31 revisions) Manual roll requested by tarrinneal@google.com flutter/flutter@c023e5b...91b2d41 2026-02-19 31859944+LongCatIsLooong@users.noreply.github.com Reland #179643, only scroll hit-testable primary scroll views on status bar tap (flutter/flutter#182391) 2026-02-19 116356835+AbdeMohlbi@users.noreply.github.com Replace References to `flutter/engine` with `flutter/flutter` (flutter/flutter#182600) 2026-02-19 104009581+Saqib198@users.noreply.github.com Remove specific iOS extended attributes to fix code signing (flutter/flutter#180710) 2026-02-19 jason-simmons@users.noreply.github.com Manual roll Skia from 7bbdc51ab0aa to ce5854495a3a (flutter/flutter#182637) 2026-02-19 41930132+hellohuanlin@users.noreply.github.com [pv]add integration test for original untappable web view link behind context menu bug (flutter/flutter#182111) 2026-02-19 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#182579) 2026-02-19 brackenavaron@gmail.com Remove Material import from scroll_view_test.dart (flutter/flutter#181281) 2026-02-19 victorsanniay@gmail.com Add RawTooltip.ignorePointer (flutter/flutter#182527) 2026-02-19 mdebbar@google.com [web] Stop double loading fonts for WebParagraph (flutter/flutter#182026) 2026-02-19 1063596+reidbaker@users.noreply.github.com Migrate abi build paths to use new abi filtering api #AGP9 (flutter/flutter#181828) 2026-02-19 mdebbar@google.com [web] Flutter errors should be reported with console.error() (flutter/flutter#178886) 2026-02-19 engine-flutter-autoroll@skia.org Manual roll Skia from dfe78d132e24 to 7bbdc51ab0aa (8 revisions) (flutter/flutter#182612) 2026-02-19 ahabeeblahi1@gmail.com Refactor autofill_group_test.dart to remove Material dependencies (flutter/flutter#181903) 2026-02-19 engine-flutter-autoroll@skia.org Roll Packages from 59f905c to 9da22bf (8 revisions) (flutter/flutter#182611) 2026-02-19 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from Ihau0pUz3u5ajw42u... to KfPgw04T0OEADLJA5... (flutter/flutter#182607) 2026-02-19 magder@google.com Marks Mac_arm64_mokey entrypoint_dart_registrant unflaky (flutter/flutter#181648) 2026-02-19 34465683+rkishan516@users.noreply.github.com Remove material from Modal barrier tests (flutter/flutter#181708) 2026-02-19 34465683+rkishan516@users.noreply.github.com Remove material from ticker mode test (flutter/flutter#181696) 2026-02-19 34465683+rkishan516@users.noreply.github.com Remove material imports from Inherited Model, Magnifier, SafeArea, UndoHistory, Navigator and Layers test (flutter/flutter#181709) 2026-02-19 161609011+Akshat-Shuklaaa@users.noreply.github.com docs: fix grammar in animation library documentation (flutter/flutter#182461) 2026-02-19 ahmedsameha1@gmail.com Handle#6537 first grouped tests (flutter/flutter#182077) 2026-02-19 ahabeeblahi1@gmail.com Move SelectionArea web test from widgets to material folder (flutter/flutter#181951) 2026-02-19 engine-flutter-autoroll@skia.org Roll Dart SDK from 44895e617182 to 2642761fca94 (6 revisions) (flutter/flutter#182572) 2026-02-19 okorohelijah@google.com Update create template to always generate both SwiftPM and CocoaPods support for iOS/macOS plugins (flutter/flutter#181251) 2026-02-18 74812392+akhil-ge0rge@users.noreply.github.com Fix(Material): DateRangePicker ignores DatePickerTheme.dayShape (flutter/flutter#181658) 2026-02-18 83986256+devnoaman@users.noreply.github.com Fixing ExpansionTile expandedAlignment not Accepts AlignmentGeometry … (flutter/flutter#180814) 2026-02-18 15619084+vashworth@users.noreply.github.com Give guided error message when CocoaPod and SwiftPM dependency conflicts (flutter/flutter#182392) 2026-02-18 brackenavaron@gmail.com Remove material from interactive_viewer_test.dart (flutter/flutter#181465) 2026-02-18 dkwingsmt@users.noreply.github.com Bring Windows misc coverage out of bringup (flutter/flutter#182332) 2026-02-18 34871572+gmackall@users.noreply.github.com Update android symbolication instructions (flutter/flutter#181267) 2026-02-18 34871572+gmackall@users.noreply.github.com Unmark stable vulkan platform view tests as bringup (flutter/flutter#182554) 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 stuartmorgan@google.com,tarrinneal@google.com 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 Documentation for the AutoRoller is here: ...
the expandedAlignment defined as Alignment , not as AlignmentGeometry even if _buildBody returns Align widget which accepts alignment property as AlignmentGeometry.
#180813
I have included 2 tests in the [flutter/tests] :
1- ExpansionTile expandedAlignment with directional test
2-ExpansionTile expandedCrossAxisAlignment with directional expandedAlignment test
Pre-launch Checklist
///).