easySegmentedOf<T> function

Widget easySegmentedOf<T>({
  1. required List<T> items,
  2. T? value,
  3. ValueChanged<T?>? onChanged,
  4. bool multiSelect = false,
  5. List<T>? values,
  6. String itemLabel(
    1. T
    )?,
  7. String? label,
})

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),
    ),
  );
}