EditableComboboxFormField<T> constructor
EditableComboboxFormField<T> ({
- Key? key,
- required List<
ComboBoxItem< ? items,T> > - ComboBoxBuilder? selectedItemBuilder,
- T? initialValue,
- Widget? placeholder,
- Widget? disabledPlaceholder,
- required ValueChanged<
T?> ? onChanged, - VoidCallback? onTap,
- int elevation = 8,
- TextStyle? style,
- Widget icon = const Icon(FluentIcons.chevron_down),
- Color? iconDisabledColor,
- Color? iconEnabledColor,
- double iconSize = 8.0,
- bool isExpanded = false,
- Color? focusColor,
- FocusNode? focusNode,
- bool autofocus = false,
- Color? popupColor,
- FormFieldSetter<
T> ? onSaved, - FormFieldValidator<
T> ? validator, - AutovalidateMode? autovalidateMode = AutovalidateMode.disabled,
- bool? enableFeedback,
- AlignmentGeometry alignment = AlignmentDirectional.centerStart,
- BorderRadius? borderRadius,
- required SubmitEditableCombobox onFieldSubmitted,
Creates an EditableComboBox widget that is a FormField
For a description of the onSaved
, validator
, or autovalidateMode
parameters, see FormField. For the rest, see EditableComboBox.
The items
, elevation
, iconSize
, isExpanded
and autofocus
parameters must not be null.
Implementation
EditableComboboxFormField({
super.key,
required List<ComboBoxItem<T>>? items,
ComboBoxBuilder? selectedItemBuilder,
super.initialValue,
Widget? placeholder,
Widget? disabledPlaceholder,
required this.onChanged,
VoidCallback? onTap,
int elevation = 8,
TextStyle? style,
Widget icon = const Icon(FluentIcons.chevron_down),
Color? iconDisabledColor,
Color? iconEnabledColor,
double iconSize = 8.0,
bool isExpanded = false,
Color? focusColor,
FocusNode? focusNode,
bool autofocus = false,
Color? popupColor,
super.onSaved,
super.validator,
super.autovalidateMode = AutovalidateMode.disabled,
double? menuMaxHeight,
bool? enableFeedback,
AlignmentGeometry alignment = AlignmentDirectional.centerStart,
BorderRadius? borderRadius,
required SubmitEditableCombobox onFieldSubmitted,
// When adding new arguments, consider adding similar arguments to
// EditableComboBox.
}) : super(builder: (FormFieldState<T> field) {
final state = field as _EditableComboboxFormFieldState<T>;
// An unfocusable Focus widget so that this widget can detect if its
// descendants have focus or not.
return Focus(
canRequestFocus: false,
skipTraversal: true,
child: Builder(builder: (BuildContext context) {
return FormRow(
padding: EdgeInsets.zero,
error: field.errorText != null ? Text(field.errorText!) : null,
child: Align(
alignment: AlignmentDirectional.centerStart,
child: EditableComboBox<T>(
items: items,
selectedItemBuilder: selectedItemBuilder,
value: state.value,
placeholder: placeholder,
disabledPlaceholder: disabledPlaceholder,
onChanged: onChanged == null ? null : state.didChange,
onTap: onTap,
elevation: elevation,
style: style,
icon: icon,
iconDisabledColor: iconDisabledColor,
iconEnabledColor: iconEnabledColor,
iconSize: iconSize,
isExpanded: isExpanded,
focusColor: focusColor,
focusNode: focusNode,
autofocus: autofocus,
popupColor: popupColor,
onFieldSubmitted: onFieldSubmitted,
),
),
);
}),
);
});