easySegmentedOf<T> function
Creates a segmented control.
items - The list of items to display.
value - The currently selected value.
onChanged - Callback when an item is selected.
multiSelect - Whether to allow multiple selections.
values - The currently selected values (multi selection).
itemLabel - Function to convert an item to a string label.
label - Optional label for the segmented control.
Implementation
Widget easySegmentedOf<T>({
required List<T> items,
T? value,
ValueChanged<T?>? onChanged,
bool multiSelect = false,
List<T>? values,
String Function(T)? itemLabel,
String? label,
}) {
return _easyLabelWrapper(
label: label,
child: EasySegmented<T>(
items: items,
value: value,
selectedValues: values ?? const [],
onChanged: onChanged,
onChangedMultiple: multiSelect
? (list) => onChanged?.call(list.isEmpty ? null : list.first)
: null,
multiSelect: multiSelect,
itemBuilder: (context, item, selected) =>
_defaultItemBuilder(context, item, selected, itemLabel),
),
);
}