advanced_dropdown 1.0.3
advanced_dropdown: ^1.0.3 copied to clipboard
A customizable Flutter dropdown with search, single-select, and multi-select support.
πΈ Screenshots #
Single Select | Multi Select | With Search | With Search |
---|---|---|---|
[Single Select] | [Multi Select] | [With Search] | [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
π Installation #
Add to your pubspec.yaml
:
const Text('1οΈβ£ Default Dropdown (single select)'),
CustomDropdown(
items: fruits,
onChanged: (value) => setState(() => defaultSelected = value),
),
const Text('2οΈβ£ Single Select Dropdown'),
CustomDropdown(
items: fruits,
onChanged: (value) => setState(() => singleSelected = value),
),
const Text('3οΈβ£ Multi Select Dropdown'),
CustomDropdown(
items: fruits,
isMultiSelect: true,
onChanged: (values) => setState(() => multiSelected = List<String>.from(values)),
),
const Text('4οΈβ£ Searchable Dropdown (single)'),
CustomDropdown(
items: fruits,
isSearch: true,
onChanged: (value) => setState(() => decoratedSelected = value),
),
const Text('5οΈβ£ Searchable Dropdown (multi)'),
CustomDropdown(
items: fruits,
isSearch: true,
isMultiSelect: true,
onChanged: (values) => setState(() => searchSelected = List<String>.from(values)),
),
const Text('6οΈβ£ Custom Decorated Dropdown'),
CustomDropdown(
items: fruits,
isSearch: true,
isMultiSelect: true,
decoration: BoxDecoration(
color: Colors.purple.shade50,
borderRadius: BorderRadius.circular(16),
border: Border.all(color: Colors.purple, width: 2),
),
dropdownDecoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
boxShadow: [
BoxShadow(
color: Colors.purple.withValues(alpha: 0.3),
blurRadius: 5,
offset: const Offset(0, 3),
),
],
),
inputDecoration: const InputDecoration(
hintText: 'Search fruits...',
border: OutlineInputBorder(),
isDense: true,
),
onChanged: (values) => setState(() => searchSelected = List<String>.from(values)),
),