SpinButtonFormField<T extends Comparable> constructor
SpinButtonFormField<T extends Comparable>({ - Key? key,
- required T? value,
- required LabelWidgetCallback<T> labelCallback,
- Widget? incrementIcon,
- Widget? decrementIcon,
- InputDecoration? decoration,
- FocusNode? incrementFocusNode,
- FocusNode? decrementFocusNode,
- bool incrementAutofocus = false,
- bool decrementAutofocus = false,
- ValueChanged<T?>? onChanged,
- FormFieldSetter<T>? onSaved,
- FormFieldValidator<T>? validator,
- AutovalidateMode? autovalidateMode,
- SpinActionSelect<T>? onIncrementSelected,
- SpinActionSelect<T>? onDecrementSelected,
})
Implementation
SpinButtonFormField({
super.key,
required T? value,
required LabelWidgetCallback<T> labelCallback,
Widget? incrementIcon,
Widget? decrementIcon,
InputDecoration? decoration,
FocusNode? incrementFocusNode,
FocusNode? decrementFocusNode,
bool incrementAutofocus = false,
bool decrementAutofocus = false,
this.onChanged,
super.onSaved,
super.validator,
AutovalidateMode? autovalidateMode,
SpinActionSelect<T>? onIncrementSelected,
SpinActionSelect<T>? onDecrementSelected,
}) : super(
initialValue: value,
autovalidateMode: autovalidateMode ?? AutovalidateMode.disabled,
builder: (state) {
void onIncrementPressed() {
assert(onChanged != null && onIncrementSelected != null);
final value = onIncrementSelected!();
state.didChange(value);
}
void onDecrementPressed() {
assert(onChanged != null && onDecrementSelected != null);
final value = onDecrementSelected!();
state.didChange(value);
}
final isEnabled = onChanged != null;
return SpinButton(
value: state.value,
labelCallback: labelCallback,
incrementIcon: incrementIcon,
decrementIcon: decrementIcon,
incrementFocusNode: incrementFocusNode,
decrementFocusNode: decrementFocusNode,
incrementAutofocus: incrementAutofocus,
decrementAutofocus: decrementAutofocus,
decoration: (decoration ?? const InputDecoration()).copyWith(
errorText: state.errorText,
enabled: isEnabled,
),
onIncrementPressed: (isEnabled && onIncrementSelected != null)
? onIncrementPressed
: null,
onDecrementPressed: (isEnabled && onDecrementSelected != null)
? onDecrementPressed
: null,
);
},
);