MultiSelectField<T>.chip constructor
const
MultiSelectField<T>.chip ({
- Key? key,
- required String label,
- List<
Choice< data()?,T> > - void onSelect()?,
- List<
Choice< ? defaultData,T> > - ChipStyle? chipStyle,
- ChipSize? chipSize,
- VoidCallback? onMenuOpened,
- VoidCallback? onMenuClosed,
- bool enabled,
- Widget? leading,
- Widget? trailing,
- bool showDropdownIcon,
- bool singleSelection,
- bool selectAllOption,
- MenuController? controller,
- TextStyle? titleMenuStyle,
- TextStyle? itemMenuStyle,
- EdgeInsetsGeometry? titleMenuPadding,
Creates a compact chip-style MultiSelectField.
This variant displays as a small chip that opens a dropdown menu when tapped. Ideal for filter bars or space-constrained areas.
The dropdown can contain either:
- Auto-generated list from
data(like standard MultiSelectField) - Custom
menuContentwidget for full flexibility
Example with data:
MultiSelectField<Status>.chip(
label: 'Status',
data: () => [
Choice('1', 'Active'),
Choice('2', 'Pending'),
],
onSelect: (selected, _) => updateFilter(selected),
)
Example with custom content:
MultiSelectField<String>.chip(
label: 'Date',
menuContent: Column(
children: [
RadioListTile(...),
DatePicker(...),
],
),
onSelect: (selected, _) => updateFilter(selected),
)
Implementation
const factory MultiSelectField.chip({
Key? key,
required String label,
List<Choice<T>> Function()? data,
void Function(List<Choice<T>> choiceList, bool isFromDefaultData)? onSelect,
List<Choice<T>>? defaultData,
Widget? menuContent,
Widget? menuHeader,
Widget? menuFooter,
ChipStyle? chipStyle,
ChipMenuStyle? menuStyle,
ChipSize? chipSize,
VoidCallback? onMenuOpened,
VoidCallback? onMenuClosed,
bool enabled,
Widget? leading,
Widget? trailing,
bool showDropdownIcon,
bool singleSelection,
bool selectAllOption,
MenuController? controller,
TextStyle? titleMenuStyle,
TextStyle? itemMenuStyle,
EdgeInsetsGeometry? titleMenuPadding,
}) = ChipMultiSelectField<T>;