
The MultiSelect Dropdown for Flutter is a powerful and customizable widget that empowers you to effortlessly manage and search through multiple items in a dropdown list. Customize the dropdown with your own style, and use the controller to programmatically control the dropdown.
- The
MultiSelectDropDown
widget has been renamed to MultiDropdown
, which now supports FormValidation
.
- The
MultiSelectController
methods have been updated/renamed.
- The
ValueItem
class has replaced the DropdownItem
class.
- The
.network
constructor has been removed and has been replaced with the future
constructor, which accepts a future callback to fetch the data from the server. Use it to handle future your own way.
onOptionsSelected
has been replaced with onSelectionChange
. The onSelectionChange
callback is called whenever the selection changes in the dropdown, whether it is selected or deselected.
- A lot of parameters have been renamed and updated. Please check the documentation for the updated parameters.
Preview | Controller | Parameters

You can use the controller to programmatically select/unselect items, clear the selection, and get the selected items, set disabled items, show/hide the dropdown. It is still in beta, will be stable in the next release.
final MultiSelectController<User> _controller = MultiSelectController<User>();
_controller.clearAll();
_controller.selectWhere(bool Function(DropdownItem<User>) predicate);
_controller.setItems(List<DropdownItem<User>> options);
_controller.addItem(DropdownItem<User> option);
_controller.addItems(List<DropdownItem<User>> options);
_controller.disableWhere(bool Function(DropdownItem<User>) predicate);
_controller.selectAll();
_controller.selectAtIndex(int index);
_controller.selectWhere(bool Function(DropdownItem<User>) predicate);
_controller.deselectWhere(bool Function(DropdownItem<User>) predicate);
_controller.items;
_controller.selectedItems;
_controller.disabledItems;
_controller.openDropdown();
_controller.closeDropdown();
copied to clipboard
Parameter |
Type |
Description |
Default |
items |
List<DropdownItem |
The list of dropdown items. |
Required |
singleSelect |
bool |
The selection type of the dropdown. |
false |
chipDecoration |
ChipDecoration |
The configuration for the chips. |
ChipDecoration() |
fieldDecoration |
FieldDecoration |
The decoration of the field. |
FieldDecoration() |
dropdownDecoration |
DropdownDecoration |
The decoration of the dropdown. |
DropdownDecoration() |
searchDecoration |
SearchFieldDecoration |
The decoration of the search field. |
SearchFieldDecoration() |
dropdownItemDecoration |
DropdownItemDecoration |
The decoration of the dropdown items. |
DropdownItemDecoration() |
itemBuilder |
DropdownItemBuilder |
The builder for the dropdown items. |
null |
selectedItemBuilder |
SelectedItemBuilder |
The builder for the selected items. |
null |
itemSeparator |
Widget? |
The separator between the dropdown items. |
null |
validator |
String? Function(List<DropdownItem |
The validator for the dropdown. |
null |
autovalidateMode |
AutovalidateMode |
The autovalidate mode for the dropdown. |
AutovalidateMode.disabled |
controller |
MultiSelectController |
The controller for the dropdown. |
null |
maxSelections |
int |
The maximum number of selections allowed. |
0 |
enabled |
bool |
Whether the dropdown is enabled. |
true |
searchEnabled |
bool |
Whether the search field is enabled. |
false |
focusNode |
FocusNode? |
The focus node for the dropdown. |
null |
future |
FutureRequest |
The future request for the dropdown items. |
null |
onSelectionChange |
OnSelectionChanged |
The callback when the item is changed. |
null |
closeOnBackButton |
bool |
Closes the dropdown on back button |
false |
onSearchChange |
ValueChanged |
The callback when the search text changes. |
null |
Parameter |
Type |
Description |
Default |
label |
String |
The label of the dropdown item. |
Required |
value |
T |
The value associated with the dropdown item. |
Required |
disabled |
bool |
Indicates whether the dropdown item is disabled. |
false |
selected |
bool |
Indicates whether the dropdown item is selected. |
false |
Parameter |
Type |
Description |
Default |
deleteIcon |
Icon |
The icon to display for deleting a chip. |
Icon(Icons.close) |
backgroundColor |
Color |
The background color of the chip. |
Colors.blue |
labelStyle |
TextStyle |
The style of the chip label. |
TextStyle() |
padding |
EdgeInsets |
The padding around the chip. |
EdgeInsets.all(8.0) |
border |
BoxBorder |
The border of the chip. |
Border() |
spacing |
double |
The spacing between chips. |
8.0 |
runSpacing |
double |
The spacing between chip rows (when the chips wrap). |
8.0 |
borderRadius |
BorderRadiusGeometry |
The border radius of the chip. |
BorderRadius.circular(12) |
wrap |
bool |
Whether to wrap chips or scroll them. |
true |
Parameter |
Type |
Description |
Default |
labelText |
String? |
The label text to display above the dropdown field. |
null |
hintText |
String? |
The hint text to display in the dropdown field. |
null |
border |
InputBorder? |
The border of the dropdown field. |
null |
focusedBorder |
InputBorder? |
The border of the dropdown field when it is focused. |
null |
disabledBorder |
InputBorder? |
The border of the dropdown field when it is disabled. |
null |
errorBorder |
InputBorder? |
The border of the dropdown field when there is an error. |
null |
suffixIcon |
Widget? |
The icon to display at the end of the dropdown field. |
Icon(Icons.arrow_drop_down) |
prefixIcon |
Widget? |
The icon to display at the start of the dropdown field. |
null |
labelStyle |
TextStyle? |
The style of the label text. |
null |
hintStyle |
TextStyle? |
The style of the hint text. |
null |
borderRadius |
double |
The border radius of the dropdown field. |
8.0 |
animateSuffixIcon |
bool |
Animate the icon or not. |
true |
padding |
EdgeInsets? |
Padding around the dropdown field. |
null |
showClearIcon |
bool |
Show the clear icon or not. |
true |
Parameter |
Type |
Description |
Default |
backgroundColor |
Color |
The background color of the dropdown. |
Colors.white |
elevation |
double |
The elevation of the dropdown. |
1.0 |
maxHeight |
double |
The max height of the dropdown. |
400.0 |
borderRadius |
BorderRadius |
The border radius of the dropdown. |
BorderRadius.circular(12.0) |
marginTop |
double |
The margin top of the dropdown. |
0.0 |
header |
Widget? |
The header of the dropdown. |
null |
footer |
Widget? |
The footer of the dropdown. |
null |
Parameter |
Type |
Description |
Default |
hintText |
String |
The hint text to display in the search field. |
'Search' |
border |
InputBorder? |
The border of the search field. |
null |
focusedBorder |
InputBorder? |
The border of the search field when it is focused. |
null |
searchIcon |
Icon |
The icon to display in the search field. |
Icon(Icons.search) |
Parameter |
Type |
Description |
Default |
backgroundColor |
Color |
The background color of the dropdown item. |
null |
disabledBackgroundColor |
Color |
The background color of the disabled dropdown item. |
null |
selectedBackgroundColor |
Color |
The background color of the selected dropdown item. |
null |
selectedTextColor |
Color |
The text color of the selected dropdown item. |
null |
textColor |
Color |
The text color of the dropdown item. |
null |
disabledTextColor |
Color |
The text color of the disabled dropdown item. |
null |
selectedIcon |
Icon |
The icon to display for the selected dropdown item. |
null |
disabledIcon |
Icon |
The icon to display for the disabled dropdown item. |
null |