advanced_dropdown 2.0.3
advanced_dropdown: ^2.0.3 copied to clipboard
A customizable Flutter dropdown with search, single-select, and multi-select support.
πΈ Screenshots #
| Custom Decoration | Single Select | Single Select with Search | Multi Select | Multi Select with Search |
|---|---|---|---|---|
| [Custom Decoration] | [Single Select] | [Single Select with Search] | [Multi Select] | [Multi Select with Search] |
π§© Custom Dropdown for Flutter #
A fully customizable dropdown widget for Flutter that supports single-select, multi-select, and search β all in one widget.
Lightweight, flexible, and easy to integrate into any Flutter project.
π± Platform Support #
| Platform | Supported | Tested |
|---|---|---|
| Android | β | β |
| iOS | β | β |
| Web | β | β |
| Windows | β | βοΈ |
| macOS | β | βοΈ |
| Linux | β | βοΈ |
π‘ Works with Flutter 3.0+ and Dart 3.0+
β¨ Features #
β
Single Select (default) β behaves like a normal dropdown
β
Multi Select β users can select multiple items
β
Searchable Dropdown β optional search bar for filtering
β
Flexible Decoration β customize dropdown and list appearance
β
Custom InputDecoration for search bar
β
Auto position below the button
β
Lightweight (~3 KB compressed)
β
No external dependencies
β
Custom Dropdown Button Design
β
Custom Dropdown Icon
βοΈ Customization Options #
Below is a complete list of customizable properties available in the AdvancedDropdown widget.
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
| items | List<dynamic> <br/>List<Map<String, dynamic>> |
β Yes | β | The list of items to display in the dropdown. Supports both List<String> and List<Map<String, dynamic>>. |
| onChanged | Function(dynamic) |
β Yes | β | Callback triggered when an item (or multiple items) is selected. Returns a value (single select) or a list (multi-select). |
| isSearch | bool |
β No | false |
Enables a search bar for filtering dropdown items. |
| isMultiSelect | bool |
β No | false |
Enables multiple selection mode with checkboxes and removable chips. |
| displayField | String? |
β No | null |
For List<Map<String, dynamic>>, defines which key to use for display text (e.g., "name"). |
| valueField | String? |
β No | null |
For List<Map<String, dynamic>>, defines which key to use as the actual value (e.g., "id"). |
| initialValue | dynamic |
β No | null |
Defines a preselected value for single-select dropdowns β useful for restoring API data. |
| initialValues | List<dynamic>? |
β No | null |
Defines preselected values for multi-select dropdowns β useful for restoring API data or saved user preferences. |
| maxSelection | int? |
β No | null |
Sets a limit for maximum selected items in multi-select mode. When exceeded, shows a SnackBar (e.g., βYou can select up to 4 itemsβ). |
| decoration | BoxDecoration? |
β No | null |
Customizes the main dropdown button appearance (border, background, shape, etc.). |
| dropdownDecoration | BoxDecoration? |
β No | null |
Styles the dropdown popup container. |
| inputDecoration | InputDecoration? |
β No | null |
Customizes the search fieldβs style and behavior. |
| hintText | String? |
β No | "Select an option" |
Text shown when no item is selected. |
| icon | Icon? |
β No | Icon(Icons.arrow_drop_down) |
The dropdown icon displayed beside the field. |
| selectedTextStyle | TextStyle? |
β No | null |
Custom text style for displaying selected items. |
| itemTextStyle | TextStyle? |
β No | null |
Custom text style for dropdown list items. |
| chipColor | Color |
β No | Color(0xFFD0E6FF) |
Background color for selected item chips (multi-select mode). |
| chipTextColor | Color |
β No | Colors.black |
Text color inside chips. |
| chipTextStyle | TextStyle? |
β No | null |
Fully customize the chipβs text (font, size, weight, etc.). |
| chipRemoveIconColor | Color |
β No | Colors.black54 |
Color of the chip remove (Γ) icon. |
| key | Key? |
β No | null |
Flutter widget key for testing or identification. |
π‘ Notes #
- Default mode = Single Select
- When
isMultiSelect: true, theonChangedcallback returns a List of selected items. - Dropdown automatically opens below the button.
- You can style everything (dropdown, button, list, search bar).
- Works seamlessly with light and dark themes.