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. Whether you're selecting multiple options for filtering data or picking various preferences, this package provides a seamless user experience. It also supports fetching the data from a URL.
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(); /// Clear all selected items
_controller.selectWhere(bool Function(DropdownItem<User>) predicate); /// Select items based on a predicate
_controller.setItems(List<DropdownItem<User>> options); /// Set items of the dropdown
_controller.addItem(DropdownItem<User> option); /// Add item to dropdown
_controller.addItems(List<DropdownItem<User>> options); /// Add items to dropdown
_controller.disableWhere(bool Function(DropdownItem<User>) predicate); /// Disable items based on a predicate
_controller.selectAll(); /// Select all items
_controller.selectAtIndex(int index); /// Select item at index
_controller.selectWhere(bool Function(DropdownItem<User>) predicate); /// Select items based on a predicate
_controller.deselectWhere(bool Function(DropdownItem<User>) predicate); /// Deselect items based on a predicate
_controller.items; /// Get all items
_controller.selectedItems; /// Get selected items
_controller.disabledItems; /// Get disabled items
_controller.show(); /// Show the dropdown
_controller.hide(); /// Hide the dropdown if it is open
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 |
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) |
labelPadding |
EdgeInsets |
The padding for the label of the chip. |
EdgeInsets.all(8.0) |
shape |
RoundedRectangleBorder |
The radius of the chip. |
RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.0)) |
spacing |
double |
The spacing between chips. |
8.0 |
runSpacing |
double |
The spacing between chip rows (when the chips wrap). |
8.0 |
separator |
Widget |
The widget to display between chips. |
null |
borderSide |
BorderSide |
The border side of the chip. |
BorderSide() |
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 |
Icon |
The icon to display at the end of the dropdown field. |
Icon(Icons.arrow_drop_down) |
prefixIcon |
Icon? |
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 |
Parameter |
Type |
Description |
Default |
backgroundColor |
Color |
The background color of the dropdown. |
Colors.white |
elevation |
double |
The elevation of the dropdown. |
1.0 |
height |
double |
The height of the dropdown. |
300.0 |
borderRadius |
BorderRadius |
The border radius of the dropdown. |
BorderRadius.circular(12.0) |
marginTop |
double |
The margin top of the dropdown. |
0.0 |
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 |