buildPickerItem method

Widget buildPickerItem(
  1. T data
)

构建选择项

Implementation

Widget buildPickerItem(T data) {
  if (widget.itemBuilder != null) {
    return widget.itemBuilder!(context, data, selectedData, onChanged);
  }

  final String? label = widget.labelMapper(data);
  final V? value = widget.valueMapper(data);
  final V? selectedValue =
      selectedData == null ? null : widget.valueMapper(selectedData as T);
  final bool selected =
      selectedData != null && widget.valueMapper(selectedData as T) == value;
  final bool enabled =
      widget.disabledWhen == null ? true : !widget.disabledWhen!(data);

  return RadioListTile<V?>(
    value: value,
    groupValue: selectedValue,
    subtitle: widget.subtitleBuilder == null
        ? null
        : widget.subtitleBuilder!(context, data),
    dense: true,
    title: TxMatchingText(label ?? '', query: controller?.text),
    onChanged: enabled ? (value) => onChanged(data) : null,
    selected: selected,
    contentPadding: EdgeInsets.zero,
  );
}