diff --git a/packages/dropdown_button2/CHANGELOG.md b/packages/dropdown_button2/CHANGELOG.md index 5747fa6..421bf9f 100644 --- a/packages/dropdown_button2/CHANGELOG.md +++ b/packages/dropdown_button2/CHANGELOG.md @@ -19,6 +19,7 @@ - Respect inputDecoration's borderRadius when barrierCoversButton is false. - Support BorderRadiusDirectional for dropdown menu. - Fix barrier when using TextDirection.rtl while barrierCoversButton set to false. +- Take InputDecoration's densityOffset into account when determining the button size. ## 3.0.0-beta.21 diff --git a/packages/dropdown_button2/lib/src/dropdown_button2.dart b/packages/dropdown_button2/lib/src/dropdown_button2.dart index cb78748..e17ff66 100644 --- a/packages/dropdown_button2/lib/src/dropdown_button2.dart +++ b/packages/dropdown_button2/lib/src/dropdown_button2.dart @@ -570,8 +570,11 @@ class _DropdownButton2State extends State> with WidgetsBin // Return the contentPadding only if inputDecoration is defined. if (widget._inputDecoration case final decoration?) { final TextDirection? textDirection = Directionality.maybeOf(context); + // Use inputDecorationTheme.visualDensity when added (https://github.com/flutter/flutter/issues/166201#issuecomment-2774622584) + final Offset densityOffset = Theme.of(context).visualDensity.baseSizeAdjustment; return (decoration.contentPadding ?? Theme.of(context).inputDecorationTheme.contentPadding) - ?.resolve(textDirection); + ?.add(EdgeInsets.symmetric(vertical: densityOffset.dy / 2)) + .resolve(textDirection); } else { return null; } diff --git a/packages/dropdown_button2_test/test/examples/form_field_example_test.dart b/packages/dropdown_button2_test/test/examples/form_field_example_test.dart index 5bb619e..5a8904d 100644 --- a/packages/dropdown_button2_test/test/examples/form_field_example_test.dart +++ b/packages/dropdown_button2_test/test/examples/form_field_example_test.dart @@ -8,8 +8,6 @@ import 'test_app.dart'; void main() { runGoldenTests( 'FormField Example', - // NOTE: InputDecorator's contentPadding.vertical is incorrect on desktop - // until https://github.com/flutter/flutter/issues/166201 is fixed (WidgetTester tester, ViewVariant variant) async { // GIVEN await tester.pumpTestApp(const FormFieldExample()); diff --git a/packages/dropdown_button2_test/test/examples/goldens/form_field_example/desktop_open_menu.png b/packages/dropdown_button2_test/test/examples/goldens/form_field_example/desktop_open_menu.png index a5d3fd7..bafef3b 100644 Binary files a/packages/dropdown_button2_test/test/examples/goldens/form_field_example/desktop_open_menu.png and b/packages/dropdown_button2_test/test/examples/goldens/form_field_example/desktop_open_menu.png differ