Introducing ExtendableDropdown, a customizable Flutter package that empowers you to create dynamic and expandable multiple dropdown menus in your applications.
- Expandable functionality: Add or remove dropdown options on the fly, providing a user-friendly experience for managing multiple selections.
- Dismissible options: Allow users to easily remove unwanted options from the dropdown list.
- Customization options: Personalize the appearance of your dropdowns with configurable colors for the dismissible background, selected/non-selected icons, and container borders.
- Intuitive usage: Integrate ExtendableDropdown seamlessly into your Flutter codebase with clear APIs and well-structured components.
- Improved user experience: Enhanced flexibility and control over dropdown menus, leading to a more interactive and efficient interaction for your users.
- Simplified development: Streamline the creation of complex dropdown functionalities with a reusable and well-designed widget.
- Increased code maintainability: Keep your code organized and modular by encapsulating dropdown logic within ExtendableDropdown.
Add extendable_dropdown
as a dependency in your pubspec.yaml
file:
dependencies:
extendable_dropdown: ^1.0.2
Import Import the package in your Flutter code:
import 'package:extendable_dropdown/extendable_dropdown.dart';
Usage Create an ExtendableDropdown instance, specifying the desired options and configurations:
List<String> stringList = [
'Colombo',
'Kandy',
'Galle',
'Jaffna',
'Matara',
'Trincomalee',
];
List<dynamic> _selectedItems = [];
void _handleSendListChanged(List<dynamic> sendList) {
setState(() {
_selectedItems = sendList;
});
print('Selected items: $_selectedItems');
}
ExtendableDropdown(
dropdownBorderRadius: 10.0,
snackBarMargin: 10.0,
snakBarBorderRadius: 5.0,
paddingLeft: 16.0,
paddingBottom: 16.0,
paddingRight: 16.0,
paddingTop: 16.0,
dismissibleBackgroundColor: Colors.red,
snackBarcolor: Colors.blue[500],
nonSelectedIcon: Icons.radio_button_checked_rounded,
selectedIcon: Icons.location_on_outlined,
selectedIconColor: Colors.green,
nonSelectedIconColor: Colors.red,
listIcon: Icons.location_on_outlined,
listIconColor: Colors.black87,
list: stringList,
dismissibleIcon: const Icon(
Icons.delete,
color: Colors.black45,
),
onSendListChanged: _handleSendListChanged,
),
FOR MORE INFORMATION HEAD ONTO EXAMPLE 😊
👉 Roadmap Advanced customization: Add features like searching within dropdown options or setting custom icons for different options. Extend the package to allow working with different data types rather than string lists. Accessibility enhancements: Implement screen reader support and other accessibility features for a more inclusive experience. Stay tuned for future updates! We welcome your feedback and contributions to make ExtendableDropdown even more powerful.
👉 Contributing We appreciate any contributions to the project. Please feel free to open issues, submit pull requests, or provide feedback.
👉 License This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by Chanuka Ranathunga