@@ -595,14 +595,27 @@ class _DropdownButton2State<T> extends State<DropdownButton2<T>> with WidgetsBin
595595 EdgeInsets ? _getInputDecorationPadding () {
596596 // Return the contentPadding only if inputDecoration is defined.
597597 if (widget._inputDecoration case final decoration? ) {
598+ final ThemeData theme = Theme .of (context);
598599 final TextDirection ? textDirection = Directionality .maybeOf (context);
599- // Use inputDecorationTheme.visualDensity when added (https://github.com/flutter/flutter/issues/166201#issuecomment-2774622584)
600- final Offset densityOffset = Theme .of (context).visualDensity.baseSizeAdjustment;
600+
601601 final EdgeInsets ? contentPadding =
602- (decoration.contentPadding ?? Theme . of (context) .inputDecorationTheme.contentPadding)
602+ (decoration.contentPadding ?? theme .inputDecorationTheme.contentPadding)
603603 ? .resolve (textDirection);
604+
605+ // InputDecorator adds gapPadding horizontally for OutlineInputBorder.
606+ final border = decoration.border ?? theme.inputDecorationTheme.border;
607+ final double gapPadding = switch (border) {
608+ OutlineInputBorder (: final gapPadding) => gapPadding,
609+ _ => 0.0 ,
610+ };
611+
612+ // Use inputDecorationTheme.visualDensity when added (https://github.com/flutter/flutter/issues/166201#issuecomment-2774622584)
613+ final Offset densityOffset = theme.visualDensity.baseSizeAdjustment;
614+
604615 return contentPadding? .copyWith (
616+ left: contentPadding.left + gapPadding,
605617 top: math.max (0 , contentPadding.top + densityOffset.dy / 2 ),
618+ right: contentPadding.right + gapPadding,
606619 bottom: math.max (0 , contentPadding.bottom + densityOffset.dy / 2 ),
607620 );
608621 } else {
0 commit comments