buildPickerItem method
构建选择项
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,
);
}