Skip to content

[material_ui] Fix DropdownButtonFormField underline alignment at bottom - #12606

Merged
auto-submit[bot] merged 15 commits into
flutter:mainfrom
Mairramer:fix/dropdownformfield-underline-bottom
Oct 2, 2026
Merged

auto-submit[bot] merged 15 commits into
flutter:mainfrom
Mairramer:fix/dropdownformfield-underline-bottom

Conversation

@Mairramer

Copy link
Copy Markdown
Contributor

This PR fixes the visual issue where the underline of a DropdownButtonFormField did not align at the bottom of its expanded container.

Fixes flutter/flutter#162350

Port of flutter/flutter#181040.

Pre-Review Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

Footnotes

  1. Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩ ↩2

@Mairramer Mairramer added the CICD Run CI/CD label Sep 14, 2026
@Mairramer
Mairramer marked this pull request as ready for review September 14, 2026 12:33

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request introduces an isVerticallyExpanded property to DropdownButton and DropdownButtonFormField to control whether the inner contents expand to fill the available vertical space. When this property is false, the widget is wrapped in an Align widget to prevent vertical stretching. The feedback suggests adding a test to verify this default behavior when isVerticallyExpanded is false.

p2: Offset(width, containerHeight - 0.5),
),
);
});

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

It would be highly beneficial to also test the default behavior where isVerticallyExpanded is false. This ensures that the Align wrapper correctly prevents the DropdownButtonFormField from stretching to fill the parent's available height, preventing future regressions.

  });

  testWidgets('DropdownButtonFormField does not stretch vertically when isVerticallyExpanded is false', (
    WidgetTester tester,
  ) async {
    const containerHeight = 200.0;

    await tester.pumpWidget(
      MaterialApp(
        home: Scaffold(
          body: SizedBox(
            height: containerHeight,
            child: DropdownButtonFormField<int>(
              isExpanded: true,
              isVerticallyExpanded: false,
              items: const [DropdownMenuItem(value: 1, child: Text('Option 1'))],
              onChanged: (_) {},
            ),
          ),
        ),
      ),
    );

    final Finder decorator = find.byType(InputDecorator);
    final RenderBox box = tester.renderObject(decorator);

    expect(box.size.height, lessThan(containerHeight));
  });

@QuncCccccc QuncCccccc left a comment •

Copy link
Copy Markdown
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 porting it over.

Just for the record, the original PR has a g3fix cl/896061487. Flutter/packages doesn't support g3fix yet but I just put it here as a reference in case we need it when rolling in g3.

@elliette
elliette self-requested a review September 29, 2026 22:09
@QuncCccccc QuncCccccc added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 2, 2026
@auto-submit
auto-submit Bot merged commit b0ae3b2 into flutter:main Oct 2, 2026
14 checks passed
ZhuJHua pushed a commit to ZhuJHua/flutter that referenced this pull request Oct 6, 2026
…er#193840)

flutter/packages@5620e65...951f2f7

2026-10-05 [email protected] [material_ui] Add scrollPadding
property to DropdownMenuFormField (flutter/packages#12735)
2026-10-02 [email protected] [material_ui]
Migrate M3 Motion template to use new gen_defaults
(flutter/packages#13058)
2026-10-02 [email protected]
[cupertino_ui] Forward showDragHandle from showCupertinoSheet to
CupertinoSheetRoute (flutter/packages#13011)
2026-10-02 [email protected] [cupertino_ui]
Fix CupertinoMagnifier focal point with custom size
(flutter/packages#13029)
2026-10-02 [email protected] [ci] Add material_ui and cupertino_ui
to customer testing (flutter/packages#13114)
2026-10-02 [email protected] [material_ui]
Add Material 3 Expressive migration skill (flutter/packages#12818)
2026-10-02 [email protected] [video_player] Ignore late position
updates after disposal (flutter/packages#12971)
2026-10-02 [email protected] [material_ui]
Remove unconditional dart:io import from about.dart
(flutter/packages#12774)
2026-10-02 [email protected] [material_ui] Fix
DropdownButtonFormField underline alignment at bottom
(flutter/packages#12606)
2026-10-02 [email protected] Roll Flutter from
e89fd0a to d03768e (23 revisions) (flutter/packages#13111)
2026-10-02 [email protected] [material_ui] Migrate
`Switch` API doc snippets to {@example} (batch 8)
(flutter/packages#13052)
2026-10-02 [email protected]
[url_launcher] Fix supportsCloseForLaunchMode to query close support
(flutter/packages#12926)
2026-10-02 [email protected] Redistribute
iOS/macOS Suggested Reviewers (flutter/packages#13076)
2026-10-02 [email protected] [image_picker] Subsample large images
when resizing on Android (flutter/packages#13038)
2026-10-02 [email protected] [cupertino_ui] Remove
redundant null arguments in Completer.complete (flutter/packages#13008)
2026-10-02 [email protected] [repo]
Update AGENTS.md with dependency allowance and versioning guidance
(flutter/packages#12579)

If this roll has caused a breakage, revert this CL and set the roller
to dry run mode using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected] on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
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:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
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 CICD Run CI/CD p: material_ui triage-design Should be looked at in design triage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DropdownButtonFormField does not scale correctly to fit its parent's height

3 participants