animated_multi_dropdown 1.0.7
animated_multi_dropdown: ^1.0.7 copied to clipboard
A highly customizable animated multi-dropdown widget with stunning animations like glass morphism, liquid effects, neon, cyberpunk, and more.
π Animated Multi Dropdown #
β¨ Turn boring dropdowns into stunning animated experiences β¨
π¬ Preview #
β οΈ Add your GIF here (very important for pub.dev ranking)
assets/demo.gif
β‘ Why This Package? #
Stop using plain dropdowns.
This package gives you:
- π¨ 25+ Stunning Animations
- π― 16+ Indicator Styles
- β‘ Smooth 60 FPS Performance
- π Built-in Search
- π± Single & Multi Select
- π¨ Fully Customizable
- π Dark Mode Ready
- π» Works Everywhere (Android, iOS, Web, Desktop)
π Quick Start #
1οΈβ£ Add Dependency #
dependencies:
animated_multi_dropdown: ^1.0.4
2οΈβ£ Import #
import 'package:animated_multi_dropdown/animated_multi_dropdown.dart';
π’ Basic Usage #
πΉ Single Selection #
String? selectedValue;
SimpleDropdownFactory.single(
items: ['Apple', 'Banana', 'Orange', 'Mango', 'Grapes'],
value: selectedValue,
onChanged: (value) => setState(() => selectedValue = value),
itemBuilder: (item) => Text(item),
hintText: 'Select a fruit',
animationType: DropdownAnimationType.glass,
);
πΉ Multiple Selection #
List<String> selectedValues = [];
SimpleDropdownFactory.multiple(
items: ['Flutter', 'React', 'Vue.js', 'Angular', 'Svelte'],
value: selectedValues,
onChanged: (values) =>
setState(() => selectedValues = List<String>.from(values)),
itemBuilder: (item) => Text(item),
hintText: 'Select frameworks',
animationType: DropdownAnimationType.liquid,
);
π¨ Animation Types #
π§ Glass & Morphing #
glassglassMorphismfloatingGlassfloatingCardmorphingGlassmorphing
π Liquid & Fluid #
liquidliquidSmoothfluidWaveliquidMetalliquidSwipegradientWave
π‘ Neon & Cyber #
neonneonPulsecyberpunkcyberNeon
π― 3D & Physics #
bouncy3dgravityWellfoldablecosmicRipple
𧬠Advanced Effects #
staggeredstaggeredVerticalDropItemhologramholographicFanmolecular
π― Indicator Types #
π Radio #
SimpleDropdownFactory.radio(
items: items,
value: selectedValue,
onChanged: (value) => setState(() => selectedValue = value),
itemBuilder: (item) => Text(item),
activeColor: Colors.blue,
);
Types:
radioradioCheckmarkradioDotradioSquare
βοΈ Checkbox #
SimpleDropdownFactory.multiple(
items: items,
value: selectedValues,
onChanged: (values) => setState(() => selectedValues = values),
itemBuilder: (item) => Text(item),
indicatorType: IndicatorType.classic,
);
Types:
classiccheckmarkdotCheckboxsquare
π Toggle & Switch #
SimpleDropdownFactory.toggle(
items: items,
value: selectedValue,
onChanged: (value) => setState(() => selectedValue = value),
itemBuilder: (item) => Text(item),
);
π Gradient Indicators #
SimpleDropdownFactory.gradientRadio(
items: items,
value: selectedValue,
onChanged: (value) => setState(() => selectedValue = value),
itemBuilder: (item) => Text(item),
gradientColors: [Colors.blue, Colors.purple],
);
π¨ Custom Indicator #
SimpleDropdownFactory.customStarSingle(
items: items,
value: selectedValue,
onChanged: (value) => setState(() => selectedValue = value),
itemBuilder: (item) => Text(item),
activeColor: Colors.amber,
);
βοΈ Configuration #
MultiDropDownConfig(
duration: Duration(milliseconds: 500),
highlightColor: Colors.teal,
backgroundColor: Colors.white,
borderRadius: BorderRadius.circular(16),
selectorHeight: 56,
enableSearch: true,
showSelectedItemsAsChips: true,
enableHapticFeedback: true,
)
π Advanced Usage #
π¨ Styled Dropdown #
SimpleDropdownFactory.styledSingle(
items: items,
value: selectedValue,
onChanged: (value) => setState(() => selectedValue = value),
itemBuilder: (item) => Text(item),
style: SimpleDropdownStyle.glass(
highlightColor: Colors.purple,
height: 56,
width: double.infinity,
),
);
π§© Custom Indicator Builder #
SimpleDropdownFactory.single(
items: items,
value: selectedValue,
onChanged: (value) => setState(() => selectedValue = value),
itemBuilder: (item) => Text(item),
indicatorType: IndicatorType.custom,
customIndicatorBuilder: (context, isSelected, color) {
return AnimatedContainer(
duration: Duration(milliseconds: 200),
child: Icon(
isSelected ? Icons.favorite : Icons.favorite_border,
color: color,
),
);
},
);
π Full Example #
CustomAnimatedMultiDropDown<String>(
animationType: DropdownAnimationType.glass,
items: items,
value: selectedValue,
onChanged: (value) => setState(() => selectedValue = value),
itemBuilder: (item) => Text(item),
config: MultiDropDownConfig(
duration: Duration(milliseconds: 500),
highlightColor: Colors.teal,
borderRadius: BorderRadius.circular(16),
selectorHeight: 56,
enableSearch: true,
showSelectedItemsAsChips: true,
enableHapticFeedback: true,
),
);
π¦ Installation #
π https://pub.dev/packages/animated_multi_dropdown
π License #
MIT License Β© 2026
π Support #
If you like this package:
- β Star the repo
- π Report issues
- π Contribute
β€οΈ Final Thought #
Donβt ship boring UI. Ship something users remember.