dropdown_button2
Flutter's core Dropdown Button widget with a steady dropdown menu and many other options you can customize to your needs.
3.1.0
1000K downloads/mo
#60 most downloaded on pub.dev
AhmedLSayed9/dropdown_button2
What this package is like to depend on
Last release 3 months ago
29 Apr 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 62 of 68 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
94 releases · first in 2021
4 releases in the last 12 months
see the full history below
Release timeline
94 releases · Dec 2021 to Apr 2026Releases
latest 60 of 94-
3.1.029 Apr 2026Release notes
Open source →What's Changed
- Release v3.0.0 by @AhmedLSayed9 in #414
- Update minimum Flutter version badge to 3.22.0 by @AhmedLSayed9 in #417
- Upgrade minimum required Flutter SDK version to 3.32.0 by @AhmedLSayed9 in #418
- Adopt Dart 3.7 formatter with trailing commas preserved by @AhmedLSayed9 in #419
- Exclude irrelevant lint rules for the test package by @AhmedLSayed9 in #420
- Add errorBuilder support for DropdownButtonFormField2 [Flutter core] by @AhmedLSayed9 in #421
- Add forceErrorText support for DropdownButtonFormField2 [Flutter core] by @AhmedLSayed9 in #422
- Fix formatting by @AhmedLSayed9 in #423
- Add ARIA menu roles to menu-related widgets for accessibility [Flutter core] by @AhmedLSayed9 in #424
- Add more semantics tests by @AhmedLSayed9 in #425
- Add anchoredMinHeight to keep the menu anchored to the button and shrink to fit when possible by @AhmedLSayed9 in #430
- Re-lay out dropdown menu on ancestor scroll by @AhmedLSayed9 in #431
- Add migration guide for valueListenable in v3 CHANGELOG by @AhmedLSayed9 in #432
- Migrate to Theme.brightnessOf method [Flutter core] by @AhmedLSayed9 in #433
- Document barrierDismissible's default value by @AhmedLSayed9 in #434
- Simplify openMenuIcon conditional in icon builder by @AhmedLSayed9 in #435
- Properly dispose internal FocusNode when replaced by an external FocusNode by @AhmedLSayed9 in #436
- Add
barrierBlocksInteractionto allow interaction with underlying widgets while the dropdown menu is open by @liubou-s-inno in #428 - Document
DropdownButtonFormField2.onChangedordering relative toForm.onChanged[Flutter core] by @AhmedLSayed9 in #437 - Inherit local InputDecorationTheme (contentPadding, border, visualDensity) instead of only the global theme by @AhmedLSayed9 in #438
- Revert "Inherit local InputDecorationTheme (contentPadding, border, visualDensity) instead of only the global theme" by @AhmedLSayed9 in #439
- Add
mouseCursorto the dropdown button and MenuItemStyleData to customize the mouse cursor when hovering by @AhmedLSayed9 in #440 - Document missing properties in README by @AhmedLSayed9 in #441
- Test against the minimum supported Flutter SDK in CI by @AhmedLSayed9 in #442
- Run CI daily to catch regressions from new Flutter releases by @AhmedLSayed9 in #443
- Update lint rules to match flutter's new lint set by @AhmedLSayed9 in #444
- Improve docs and validate selectedItemBuilder length by @AhmedLSayed9 in #445
- Add assert for mutually exclusive errorBuilder and errorText [Flutter core] by @AhmedLSayed9 in #446
New Contributors
- @liubou-s-inno made their first contribution in #428
Full Changelog: v3.0.0...v3.1.0
Release notes
Open source →- Upgrade minimum required Flutter SDK version to 3.32.0.
- Add
errorBuildersupport for DropdownButtonFormField2 [Flutter core]. - Add
forceErrorTextsupport for DropdownButtonFormField2 [Flutter core]. - Add ARIA menu roles to menu-related widgets for accessibility [Flutter core].
- Document
DropdownButtonFormField2.onChangedordering relative toForm.onChanged[Flutter core]. - Add assert for mutually exclusive
errorBuilderanderrorText[Flutter core]. - Add
anchoredMinHeightto keep the menu anchored to the button and shrink to fit when possible, closes #429. - Re-lay out dropdown menu on ancestor scroll.
- Add
barrierBlocksInteractionto allow interaction with underlying widgets while the dropdown menu is open. - Properly dispose internal FocusNode when replaced by an external FocusNode.
- Add
mouseCursorto the dropdown button and MenuItemStyleData to customize the mouse cursor when hovering, closes #416. - Improve docs and validate selectedItemBuilder length.
-
3.0.001 Mar 2026Release notes
Open source →What's Changed
- Fix highlight behavior by @AhmedLSayed9 in #185
- Add border radius parameter by @selsapingardi in #188
- Fix inkwell covers error message by @AhmedLSayed9 in #198
- Add support for noResultsWidget in DropdownSearchData by @chayanforyou in #195
- Enhance rendering performance when dealing with big items list by @AhmedLSayed9 in #200
- Fix isExpanded functionality by @AhmedLSayed9 in #206
- Add intrinsicHeight property to DropdownItem by @AhmedLSayed9 in #208
- Possibility to display a dropdown menu centered by @pawlowskim in #228
- Add custom barrier that doesn't cover the dropdown button by @pawlowskim in #229
- Introduce valueListenable and multiValueListenable by @AhmedLSayed9 in #245
- Release by @AhmedLSayed9 in #246
- Avoid null assertion on barrierColor by @AhmedLSayed9 in #247
- Add Dropdown builder by @AhmedLSayed9 in #253
- Release by @AhmedLSayed9 in #254
- Update programmatically open dropdown by @AhmedLSayed9 in #258
- Release by @AhmedLSayed9 in #259
- Optimize scroll performance by @AhmedLSayed9 in #267
- Bump melos version by @AhmedLSayed9 in #268
- Update SDK constraints by @AhmedLSayed9 in #269
- Remove deprecated lint rules by @AhmedLSayed9 in #270
- Update workflow by @AhmedLSayed9 in #271
- Fix CI by @AhmedLSayed9 in #272
- Update deprecated members by @AhmedLSayed9 in #273
- Release by @AhmedLSayed9 in #274
- Always call on changed when tapping enabled item by @AhmedLSayed9 in #276
- Release by @AhmedLSayed9 in #277
- Fix dropdown position when window changes horizontally by @AhmedLSayed9 in #282
- Release by @AhmedLSayed9 in #283
- Bugfix for issue #285: Scroll Position not as expected when opening the dropdown menu without prior resetting the search querry by @hlvs-apps in #286
- Update golden files by @AhmedLSayed9 in #288
- Bugfix: Ink splashes got displayed over search widget by @hlvs-apps in #291
- Add dependabot by @AhmedLSayed9 in #299
- Bump actions/checkout from 3 to 4 by @dependabot[bot] in #300
- Bump flutter_lints from 2.0.3 to 4.0.0 in /packages/dropdown_button2_test by @dependabot[bot] in #302
- Bump flutter_lints from 2.0.3 to 4.0.0 by @dependabot[bot] in #301
- Add copyWith method for style data classes by @AhmedLSayed9 in #315
- Release v3.0.0 beta.17 by @AhmedLSayed9 in #316
- Flutter dropdown updates by @AhmedLSayed9 in #320
- Fix error border not showing for DropdownButtonFormField2 by @AhmedLSayed9 in #321
- Release v3.0.0 beta.18 by @AhmedLSayed9 in #322
- Enhance the display of error/helper elements at DropdownButtonFormField2 by @AhmedLSayed9 in #323
- Remove unsupported helper property by @AhmedLSayed9 in #324
- Release v3.0.0 beta.19 by @AhmedLSayed9 in #325
- Remove an assert from updateSelectedIndex method by @AhmedLSayed9 in #328
- Update examples by @AhmedLSayed9 in #329
- Release v3.0.0 beta.20 by @AhmedLSayed9 in #331
- Fix menu limits when using searchable dropdown with separators by @AhmedLSayed9 in #334
- Release v3.0.0-beta.21 by @AhmedLSayed9 in #335
- Minor renaming by @AhmedLSayed9 in #341
- Reduce analyze ci concurrency by @AhmedLSayed9 in #342
- Fix errorStyle has no effect for DropdownButtonFormField2 by @AhmedLSayed9 in #344
- DropdownRoutePage should dispose the created ScrollController [Flutte… by @AhmedLSayed9 in https://github.com//pull/345
- Remove 'must be non-null' and 'must not be null' comments [Flutter core] by @AhmedLSayed9 in #346
- Form fields onChange callback should be called on reset [Flutter core] by @AhmedLSayed9 in #347
- Implement switch expressions by @AhmedLSayed9 in #348
- Fix DropdownButtonFormField throws when onChange is null [Flutter core] by @AhmedLSayed9 in #349
- Fix memory leak in CurvedAnimation [Flutter core] by @AhmedLSayed9 in #350
- Avoid Container objects when possible for better performance [Flutter… by @AhmedLSayed9 in https://github.com//pull/351
- Minor renaming by @AhmedLSayed9 in #352
- Add semantics to dropdown menu items [Flutter core] by @AhmedLSayed9 in #353
- Support helperStyle/helperMaxLines/errorMaxLines for DropdownButtonFo… by @AhmedLSayed9 in #354
- Improve DropdownButtonFormField overlays and surroundings by @AhmedLSayed9 in #355
- Support using inputDecoration’s horizontal padding for button and menu items by @AhmedLSayed9 in #356
- Use decoration hint text as the default value for dropdown button hin… by @AhmedLSayed9 in #357
- Update CI workflow to run on stable by @AhmedLSayed9 in #359
- Migrate to formatter page width configuration by @AhmedLSayed9 in #360
- Fix DropdownButtonFormField clips text when large text scale is used … by @AhmedLSayed9 in #361
- Fix DropdownButtonFormField padding when ButtonTheme.alignedDropdown … by @AhmedLSayed9 in #362
- Revert migrating .withOpacity unto .withValues by @AhmedLSayed9 in #363
- Fix formatting by @AhmedLSayed9 in #364
- Update golden files by @AhmedLSayed9 in #366
- Add barrier dismissible to dropdown form field by @AhmedLSayed9 in #367
- Respect button/inputDecoration's borderRadius when barrierCoversButton is false by @AhmedLSayed9 in #368
- Support BorderRadiusDirectional for dropdown menu by @AhmedLSayed9 in #369
- Take InputDecoration's densityOffset into account when determining the button size by @AhmedLSayed9 in #370
- Prevent negative InputDecorationPadding by @AhmedLSayed9 in #371
- Fix dropdownButtonFormField getter by @AhmedLSayed9 in #372
- Fix ButtonRect calculation when inputDecoration.isDense is false by @AhmedLSayed9 in #373
- Release v3.0.0-beta.22 by @AhmedLSayed9 in #374
- Avoid dropdown internal FocusNode listener leak when replaced by an e… by @AhmedLSayed9 in #378
- Fix incorrect dropdown position when resizing the window rapidly on web by @AhmedLSayed9 in #396
- Ensure dropdown menu state updated only when mounted by @AhmedLSayed9 in #397
- Release v3.0.0-beta.23 by @AhmedLSayed9 in #398
- Accept
Iterableinstead ofListforselectedItemBuilderandmultiValueListenableproperties by @AhmedLSayed9 in #403 - Release v3.0.0-beta.23 by @AhmedLSayed9 in #404
- Remove temporary fix for list not respecting itemCount when calling itemExtentBuilder by @AhmedLSayed9 in #408
- Fix selected index not updating when items list changes by @AhmedLSayed9 in #409
- Fix invalid YAML syntax in dart_test.yaml by @AhmedLSayed9 in #410
- Fix dropdown menu width not matching button width with OutlineInputBorder by @AhmedLSayed9 in #411
- Update golden files to match Flutter 3.32.0 rendering changes by @AhmedLSayed9 in #412
- Release v3.0.0-beta.25 by @AhmedLSayed9 in #413
New Contributors
- @selsapingardi made their first contribution in #188
- @chayanforyou made their first contribution in #195
- @pawlowskim made their first contribution in #228
- @hlvs-apps made their first contribution in #286
- @dependabot[bot] made their first contribution in #300
Full Changelog: v2.3.8...v3.0.0
Release notes
Open source →A stable release for DropdownButton2 3.0!
Breaking Changes
-
Replaces
valuewithvalueListenable(and addsmultiValueListenablefor multi-select). The button now receives aValueListenable<T?>and updates from the listenable directly, so the parent doesn't need tosetState.Instead of:
String? selected; @override Widget build(BuildContext context) { return DropdownButton2<String>( // Other properties... value: selected, onChanged: (value) => setState(() => selected = value), ); }do:
final selected = ValueNotifier<String?>(null); @override Widget build(BuildContext context) { return DropdownButton2<String>( // Other properties... valueListenable: selected, onChanged: (value) => selected.value = value, ); }For multi-select, use
multiValueListenable: ValueNotifier<List<String>>([])and update the list insideonChanged. See the multi-select example for the full setup. -
Replaces DropdownMenuItem with DropdownItem to provide extra functionality.
Instead of:
items: items.map((String item) => DropdownMenuItem<String>(...)).toList(),do:
items: items.map((String item) => DropdownItem<String>(...)).toList(), -
Support setting different heights for items. Item height is now set per-item instead of globally.
Instead of:
items: items .map((String item) => DropdownItem<String>( value: item, child: Text(item), )) .toList(), menuItemStyleData: const MenuItemStyleData( height: 40, ),do:
items: items .map((String item) => DropdownItem<String>( value: item, height: 40, child: Text(item), )) .toList(), -
Add
openDropdownListenableproperty to programmatically open the dropdown menu.Instead of:
final dropdownKey = GlobalKey<DropdownButton2State>(); @override Widget build(BuildContext context) { return Column( children:[ DropdownButton2<String>( // Other properties... key: dropdownKey, ); // Open the dropdown programmatically: ElevatedButton( onTap: () => dropdownKey.currentState!.callTap(), ), ], ); }do:
final openDropdownListenable = ValueNotifier<Object?>(null); @override Widget build(BuildContext context) { return Column( children:[ DropdownButton2<String>( // Other properties... openDropdownListenable: openDropdownListenable, ); // Open the dropdown programmatically: ElevatedButton( onTap: () => openDropdownListenable.value = Object(), ), ], ); } -
Rename searchInnerWidget[Height] to searchBarWidget[Height].
New Features
- Add
closeOnTapproperty to DropdownItem. It controls whether the dropdown should close when the item is tapped. - Add intrinsicHeight property to DropdownItem. This enables setting item's height according to its intrinsic height.
- Support adding separator widget internally, closes #134.
- Support implementing select all option (Check multi-select example), closes #121 and #167.
- Add the possibility to display a dropdown menu centered through
DropdownDirection.center. - Add
barrierCoversButtonproperty, used to specify whether the modal barrier should cover the dropdown button or not. - Add
foregroundDecorationproperty for ButtonStyleData. - Add
noResultsWidgetproperty for DropdownSearchData. It can be used to show some widget when the search results are empty. - Add border radius parameter for menu item.
- Add
dropdownBuilderproperty for DropdownStyleData, it can be used to customize the dropdown menu. - Add copyWith method for style data classes, closes #314.
- Support helperStyle/helperMaxLines/errorMaxLines for DropdownButtonFormField2.
- Add
MenuItemStyleData.useDecorationHorizontalPadding, used to determine whether to use the horizontal padding from "decoration.contentPadding" for menu items when usingDropdownButtonFormField2. - Add barrierCoversButton to DropdownButtonFormField2.
- Support BorderRadiusDirectional for dropdown menu.
- Add semantics to dropdown menu items [Flutter core].
- Accept
Iterableinstead ofListforselectedItemBuilderandmultiValueListenableproperties.
Bug Fixes
- Fix isExpanded and alignment functionality.
- Fix inkwell covers error message.
- Fix dropdown menu position when window changes horizontally, closes #243.
- Temporarily fix ink splash gets displayed over search widget, closes #290.
- Fix error border not showing for DropdownButtonFormField2, closes #297 & #319.
- Fix DropdownButtonFormField2 ink response radius for different input borders.
- Fix menu limits when using searchable dropdown with separators, closes #214.
- Fix errorStyle has no effect for DropdownButtonFormField2, closes #327.
- Fix memory leak in CurvedAnimation [Flutter core].
- Fix DropdownButtonFormField clips text when large text scale is used [Flutter core].
- Fix DropdownButtonFormField padding when ButtonTheme.alignedDropdown is true [Flutter core].
- Fix barrier when using TextDirection.rtl while barrierCoversButton set to false.
- Avoid dropdown internal FocusNode listener leak when replaced by an external FocusNode.
- Fix incorrect dropdown position when resizing the window rapidly on web, closes #395.
- Ensure dropdown menu state updated only when mounted.
- Fix selected index not updating when items list changes, closes #392.
- Fix dropdown menu width not matching button width with OutlineInputBorder.
Improvements
- Update highlight behavior, closes #184.
- Enhance rendering performance when dealing with big items list.
- Optimize scroll performance when dealing with large items list.
- Always call
onChangedwhen tapping enabled item, closes #275. - Enhance scroll position when using searchable dropdown, closes #285.
- Enhance the display of error/helper elements at DropdownButtonFormField2, closes #199.
- Avoid Container objects when possible for better performance [Flutter core].
- Respect button's borderRadius when barrierCoversButton is false.
- Respect inputDecoration's borderRadius when barrierCoversButton is false.
- Take InputDecoration's densityOffset into account when determining the button size.
- Use decoration hint text as the default value for dropdown button hints [Flutter core].
- Replaces textScaleFactor with TextScaler [Flutter core].
- Update SDK constraints: ">=3.4.0 <4.0.0"
- DropdownRoutePage should dispose the created ScrollController [Flutter core].
- Remove 'must be non-null' and 'must not be null' comments [Flutter core].
- Form fields onChange callback should be called on reset [Flutter core].
- Implement switch expressions.
- Update DropdownItem to respect intrinsicHeight.
- Update added menu padding to include button icon.
- Remove temporary fix for list not respecting itemCount when calling itemExtentBuilder.
- Remove an assert from updateSelectedIndex method.
- Update examples.
-
3.0.0-beta.2501 Mar 2026 pre-releaseRelease notes
Open source →What's Changed
- Release v3.0.0-beta.23 by @AhmedLSayed9 in #404
- Remove temporary fix for list not respecting itemCount when calling itemExtentBuilder by @AhmedLSayed9 in #408
- Fix selected index not updating when items list changes by @AhmedLSayed9 in #409
- Fix invalid YAML syntax in dart_test.yaml by @AhmedLSayed9 in #410
- Fix dropdown menu width not matching button width with OutlineInputBorder by @AhmedLSayed9 in #411
- Update golden files to match Flutter 3.32.0 rendering changes by @AhmedLSayed9 in #412
Full Changelog: v3.0.0-beta.24...v3.0.0-beta.25
Release notes
Open source →- Remove temporary fix for list not respecting itemCount when calling itemExtentBuilder.
- Fix selected index not updating when items list changes, closes #392.
- Fix dropdown menu width not matching button width with OutlineInputBorder.
-
3.0.0-beta.2426 Dec 2025 pre-releaseRelease notes
Open source →What's Changed
- Release v3.0.0-beta.23 by @AhmedLSayed9 in #398
- Accept
Iterableinstead ofListforselectedItemBuilderandmultiValueListenableproperties by @AhmedLSayed9 in #403
Full Changelog: v3.0.0-beta.23...v3.0.0-beta.24
Release notes
Open source →- Accept
Iterableinstead ofListforselectedItemBuilderandmultiValueListenableproperties.
-
3.0.0-beta.2326 Aug 2025 pre-releaseRelease notes
Open source →What's Changed
- Release v3.0.0-beta.22 by @AhmedLSayed9 in #374
- Avoid dropdown internal FocusNode listener leak when replaced by an e… by @AhmedLSayed9 in #378
- Fix incorrect dropdown position when resizing the window rapidly on web by @AhmedLSayed9 in #396
- Ensure dropdown menu state updated only when mounted by @AhmedLSayed9 in #397
Full Changelog: v3.0.0-beta.22...v3.0.0-beta.23
Release notes
Open source →- Avoid dropdown internal FocusNode listener leak when replaced by an external FocusNode.
- Fix incorrect dropdown position when resizing the window rapidly on web, closes #395.
- Ensure dropdown menu state updated only when mounted.
-
3.0.0-beta.2203 Apr 2025 pre-releaseRelease notes
Open source →What's Changed
- Release v3.0.0-beta.21 by @AhmedLSayed9 in #335
- Minor renaming by @AhmedLSayed9 in #341
- Reduce analyze ci concurrency by @AhmedLSayed9 in #342
- Fix errorStyle has no effect for DropdownButtonFormField2 by @AhmedLSayed9 in #344
- DropdownRoutePage should dispose the created ScrollController [Flutte… by @AhmedLSayed9 in https://github.com//pull/345
- Remove 'must be non-null' and 'must not be null' comments [Flutter core] by @AhmedLSayed9 in #346
- Form fields onChange callback should be called on reset [Flutter core] by @AhmedLSayed9 in #347
- Implement switch expressions by @AhmedLSayed9 in #348
- Fix DropdownButtonFormField throws when onChange is null [Flutter core] by @AhmedLSayed9 in #349
- Fix memory leak in CurvedAnimation [Flutter core] by @AhmedLSayed9 in #350
- Avoid Container objects when possible for better performance [Flutter… by @AhmedLSayed9 in https://github.com//pull/351
- Minor renaming by @AhmedLSayed9 in #352
- Add semantics to dropdown menu items [Flutter core] by @AhmedLSayed9 in #353
- Support helperStyle/helperMaxLines/errorMaxLines for DropdownButtonFo… by @AhmedLSayed9 in #354
- Improve DropdownButtonFormField overlays and surroundings by @AhmedLSayed9 in #355
- Support using inputDecoration’s horizontal padding for button and menu items by @AhmedLSayed9 in #356
- Use decoration hint text as the default value for dropdown button hin… by @AhmedLSayed9 in #357
- Update CI workflow to run on stable by @AhmedLSayed9 in #359
- Migrate to formatter page width configuration by @AhmedLSayed9 in #360
- Fix DropdownButtonFormField clips text when large text scale is used … by @AhmedLSayed9 in #361
- Fix DropdownButtonFormField padding when ButtonTheme.alignedDropdown … by @AhmedLSayed9 in #362
- Revert migrating .withOpacity unto .withValues by @AhmedLSayed9 in #363
- Fix formatting by @AhmedLSayed9 in #364
- Update golden files by @AhmedLSayed9 in #366
- Add barrier dismissible to dropdown form field by @AhmedLSayed9 in #367
- Respect button/inputDecoration's borderRadius when barrierCoversButton is false by @AhmedLSayed9 in #368
- Support BorderRadiusDirectional for dropdown menu by @AhmedLSayed9 in #369
- Take InputDecoration's densityOffset into account when determining the button size by @AhmedLSayed9 in #370
- Prevent negative InputDecorationPadding by @AhmedLSayed9 in #371
- Fix dropdownButtonFormField getter by @AhmedLSayed9 in #372
- Fix ButtonRect calculation when inputDecoration.isDense is false by @AhmedLSayed9 in #373
Full Changelog: v3.0.0-beta.21...v3.0.0-beta.22
Release notes
Open source →- Fix errorStyle has no effect for DropdownButtonFormField2, closes #327.
- DropdownRoutePage should dispose the created ScrollController [Flutter core].
- Remove 'must be non-null' and 'must not be null' comments [Flutter core].
- Form fields onChange callback should be called on reset [Flutter core].
- Implement switch expressions.
- Fix memory leak in CurvedAnimation [Flutter core].
- Avoid Container objects when possible for better performance [Flutter core].
- Add semantics to dropdown menu items [Flutter core].
- Support helperStyle/helperMaxLines/errorMaxLines for DropdownButtonFormField2.
- Add
MenuItemStyleData.useDecorationHorizontalPadding, used to determine whether to use the horizontal padding from "decoration.contentPadding" for menu items when usingDropdownButtonFormField2. - Use decoration hint text as the default value for dropdown button hints [Flutter core].
- Update SDK constraints: ">=3.4.0 <4.0.0"
- Fix DropdownButtonFormField clips text when large text scale is used [Flutter core].
- Fix DropdownButtonFormField padding when ButtonTheme.alignedDropdown is true [Flutter core].
- Add barrierCoversButton to DropdownButtonFormField2.
- Respect button's borderRadius when barrierCoversButton is false.
- 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.2113 Dec 2024 pre-releaseRelease notes
Open source →What's Changed
- Release v3.0.0 beta.20 by @AhmedLSayed9 in #331
- Fix menu limits when using searchable dropdown with separators by @AhmedLSayed9 in #334
Full Changelog: v3.0.0-beta.20...v3.0.0-beta.21
Release notes
Open source →- Fix menu limits when using searchable dropdown with separators, closes #214.
-
3.0.0-beta.2029 Nov 2024 pre-releaseRelease notes
Open source →What's Changed
- Release v3.0.0 beta.19 by @AhmedLSayed9 in #325
- Remove an assert from updateSelectedIndex method by @AhmedLSayed9 in #328
- Update examples by @AhmedLSayed9 in #329
Full Changelog: v3.0.0-beta.19...v3.0.0-beta.20
-
3.0.0-beta.1905 Oct 2024 pre-releaseRelease notes
Open source →What's Changed
- Release v3.0.0 beta.18 by @AhmedLSayed9 in #322
- Enhance the display of error/helper elements at DropdownButtonFormField2 by @AhmedLSayed9 in #323
- Remove unsupported helper property by @AhmedLSayed9 in #324
Full Changelog: v3.0.0-beta.18...v3.0.0-beta.19
Release notes
Open source →- Enhance the display of error/helper elements at DropdownButtonFormField2, closes #199.
-
3.0.0-beta.1805 Oct 2024 pre-releaseRelease notes
Open source →What's Changed
- Flutter dropdown updates by @AhmedLSayed9 in #320
- Fix error border not showing for DropdownButtonFormField2 by @AhmedLSayed9 in #321
Full Changelog: v3.0.0-beta.17...v3.0.0-beta.18
Release notes
Open source →- Replaces textScaleFactor with TextScaler [Flutter core].
- Fix DropdownButtonFormField2 ink response radius for different input borders.
- Fix error border not showing for DropdownButtonFormField2, closes #297 & #319.
-
3.0.0-beta.1708 Sep 2024 pre-releaseRelease notes
Open source →- Enhance scroll position when using searchable dropdown, closes #285.
- Temporarily fix ink splash gets displayed over search widget, closes #290.
- Add copyWith method for style data classes, closes #314.
-
3.0.0-beta.1625 May 2024 pre-releaseRelease notes
Open source →- Fix dropdown menu position when window changes horizontally, closes #243.
-
3.0.0-beta.1516 May 2024 pre-release -
3.0.0-beta.1416 May 2024 pre-releaseRelease notes
Open source →- Optimize scroll performance when dealing with large items list.
- Update SDK constraints: ">=3.2.0 <4.0.0"
-
3.0.0-beta.1320 Apr 2024 pre-releaseRelease notes
Open source →-
BREAKING: Add
openDropdownListenableproperty that can be used to programmatically open the dropdown menu.Instead of:
final dropdownKey = GlobalKey<DropdownButton2State>(); @override Widget build(BuildContext context) { return Column( children:[ DropdownButton2<String>( // Other properties... key: dropdownKey, ); // Open the dropdown programmatically, like when another button is pressed: ElevatedButton( onTap: () => dropdownKey.currentState!.callTap(), ), ], ); }do:
final openDropdownListenable = ValueNotifier<Object?>(null); @override Widget build(BuildContext context) { return Column( children:[ DropdownButton2<String>( // Other properties... openDropdownListenable: openDropdownListenable, ); // Open the dropdown programmatically, like when another button is pressed: ElevatedButton( onTap: () => openDropdownListenable.value = Object(), ), ], ); }
-
-
3.0.0-beta.1207 Apr 2024 pre-releaseRelease notes
Open source →- Add
dropdownBuilderproperty for DropdownStyleData, it can be used to customize the dropdown menu.
- Add
-
3.0.0-beta.1109 Mar 2024 pre-releaseRelease notes
Open source →- Introduce
valueListenableandmultiValueListenable, which replaces SetState with ValueListenable. - Support implementing select all option (Check multi-select example), closes #121 and #167.
- Introduce
-
3.0.0-beta.1029 Dec 2023 pre-releaseRelease notes
Open source →- Add the possibility to display a dropdown menu centered through
DropdownDirection.center. - Add
barrierCoversButtonproperty, used to specify whether the modal barrier should cover the dropdown button or not.
- Add the possibility to display a dropdown menu centered through
-
3.0.0-beta.930 Nov 2023 pre-releaseRelease notes
Open source →- Update DropdownItem to respect intrinsicHeight.
- Update added menu padding to include button icon.
-
3.0.0-beta.829 Nov 2023 pre-release -
3.0.0-beta.721 Oct 2023 pre-releaseRelease notes
Open source →- Add intrinsicHeight property to DropdownItem. This enables setting item's height according to its intrinsic height.
-
3.0.0-beta.620 Oct 2023 pre-release -
3.0.0-beta.502 Oct 2023 pre-release -
3.0.0-beta.427 Sep 2023 pre-releaseRelease notes
Open source →- Add
noResultsWidgetproperty for DropdownSearchData. It can be used to show some widget when the search results are empty. - Rename searchInnerWidget[Height] to searchBarWidget[Height].
- Add
-
3.0.0-beta.323 Sep 2023 pre-release -
3.0.0-beta.210 Sep 2023 pre-release -
3.0.0-beta.104 Sep 2023 pre-release -
3.0.0-beta.004 Sep 2023 pre-releaseRelease notes
Open source →-
BREAKING: Replaces DropdownMenuItem with DropdownItem to provide extra functionality.
Instead of:
items: items.map((String item) => DropdownMenuItem<String>(...)).toList(),do:
items: items.map((String item) => DropdownItem<String>(...)).toList(), -
Add
closeOnTapproperty to DropdownItem. It controls whether the dropdown should close when the item is tapped. -
BREAKING: Support setting different heights for items.
Instead of:
items: items .map((String item) => DropdownItem<String>( value: item, child: Text(item), )) .toList(), menuItemStyleData: const MenuItemStyleData( height: 40, ),do:
items: items .map((String item) => DropdownItem<String>( value: item, height: 40, child: Text(item), )) .toList(), -
Support adding separator widget internally, closes #134.
-
Update highlight behavior, closes #184.
-
-
2.3.930 Aug 2023 -
2.3.812 Aug 2023 -
2.3.726 Jul 2023 -
2.3.618 Jul 2023 -
2.3.515 Jul 2023 -
2.3.427 Jun 2023 -
2.3.323 Jun 2023 -
2.3.223 Jun 2023Nothing published for this version
-
2.3.121 Jun 2023 -
2.3.021 Jun 2023Nothing published for this version
-
2.2.621 Jun 2023Nothing published for this version
-
2.2.521 Jun 2023Nothing published for this version
-
2.2.421 Jun 2023Nothing published for this version
-
2.2.321 Jun 2023Nothing published for this version
-
2.2.221 Jun 2023 -
2.2.121 Jun 2023 -
2.2.021 Jun 2023Release notes
Open source →- Update DropdownButtonFormField2 decoration behavior. (#152)
- Squashed MediaQuery InheritedModel [Flutter core].
- Fix rebuild issue of openMenuIcon.
- Fix ink response radius for DropdownButtonFormField2.
- Update README and examples.
-
2.1.417 Jun 2023 -
2.1.322 May 2023Release notes
Open source →- Fix assertion failure when dropdownStyleData's decoration has an image.
- Fix IgnorePointer to only block user interactions (Flutter Dropdown Update).
-
2.1.211 May 2023 -
2.1.111 May 2023 -
2.1.017 Apr 2023 -
2.0.115 Apr 2023Release notes
Open source →DropdownStyleData.isFullScreenis deprecated in favor ofDropdownStyleData.useRootNavigator.- Add
DropdownStyleData.useSafeArea, used to determine if the dropdown menu should only display in safe areas of the screen.
-
2.0.027 Feb 2023Release notes
Open source →Breaking Changes:
- Refactor & organize related parameters to sub-classes (check Options at README).
- Prefer overlayColor for button/menuItem's ink response (supports desktop/web inkwell behavior customization).
- Add scrollbarTheme parameter, used to configures scrollbar's theme (#113).
- Add openInterval parameter, used to configure menu animation speed (#128).
- Add selectedMenuItemBuilder parameter, used to customize the selected menu item (#124).
- Improve SearchMatchFn's type inference.
- Replace deprecated subtitle1 by titleMedium.
- Update README.
-
1.9.422 Feb 2023 -
1.9.320 Feb 2023Release notes
Open source →- Add searchBarWidgetHeight, it fixes menu limits and scroll offset when using searchBarWidget.
-
1.9.203 Dec 2022Release notes
Open source →- Avoid overlapping menu items with keyboard when using searchable dropdown.
-
1.9.122 Nov 2022Release notes
Open source →- Add dropdownButtonKey parameter to DropdownButtonFormField2, it allows accessing DropdownButton2State.
- Update README.
-
1.9.019 Nov 2022Release notes
Open source →- Adapt to max items width when buttonWidth & dropdownWidth is null.
- Prevent dropdownWidth to exceed max screen width.
- Add dropdownDirection parameter, it controls the direction of the dropdown menu in relation to the button.
- Update README.
-
1.8.924 Oct 2022Release notes
Open source →- Add buttonOverlayColor parameter, It changes the overlay color of the button's InkWell.
- Update README.
-
1.8.820 Oct 2022 -
1.8.720 Oct 2022Release notes
Open source →- Add buttonSplashColor parameter, It changes the splash color of the button's InkWell. close #79, #89.
- Add buttonHighlightColor parameter, It changes the highlight color of the button's InkWell. close #79, #89.