nested_multiselect_dropdown 1.0.0
nested_multiselect_dropdown: ^1.0.0 copied to clipboard
A package for a nested multiselect dropdown
NestedMultiselectDropdown #
A customizable Flutter widget that provides a nested, multi-level multiselect dropdown with support for hierarchical item selection, filtering, and external state management.
Features #
- Nested/hierarchical multiselect support
- Customizable display text and styles
- Selection filtering and parent-child selection tracking
- Expandable and animated dropdown behavior
- Controller to programmatically manage selection state
- Custom check color and active color for checkboxes
Installation #
Add to your pubspec.yaml:
dependencies:
nested_multiselect_dropdown: <latest_version>
Then run:
flutter pub get
Usage #
import 'package:nested_multiselect_dropdown/nested_multiselect_dropdown.dart';
final controller = NestedMultiselectDropdownController();
NestedMultiselectDropdown(
options: yourOptionsList,
controller: controller,
isExpanded: true,
onChange: (selectedItems) {
print(selectedItems);
},
);
API Reference #
Required Parameters #
options(List<NestedMultiselectDropdownItem>): The list of available items to display in the dropdown.controller(NestedMultiselectDropdownController): A controller to programmatically interact with the dropdown (get selected items, clear selections, toggle expansion).
Optional Parameters #
paddingSelectedItems(EdgeInsets, default:EdgeInsets.all(8)): Padding around the selected items displayed in the main container.heightDropdownContainer(double, default:50): Height of the dropdown container.heightDropdownContainerDefault(double, default:200): Default height for the animated container when expanded.noItemsText(String, default:'No Items Selected...'): Text to show when no items are selected.noItemsTextStyle(TextStyle?): Custom text style fornoItemsText.onChange(Function(List<NestedMultiselectDropdownItem>)?): Callback triggered whenever selection changes.isExpanded(bool, default:false): Whether the dropdown should take full width.checkColor(Color?): Color of the checkbox checkmark.activeColor(Color?): Background color of the active checkbox.hasFilter(bool, default:false): Whether to show a filter checkbox in the dropdown.
Controller Methods #
The NestedMultiselectDropdownController provides the following methods:
getSelectedItems(): Returns the current list of selected items.expandContainer(): Expands or collapses the dropdown container.clearValues(): Clears all selected values.
Example Item Model #
NestedMultiselectDropdownItem(
id: 1,
name: "Fruits",
children: [
NestedMultiselectDropdownItem(id: 2, name: "Apple"),
NestedMultiselectDropdownItem(id: 3, name: "Banana"),
],
)