wrapInFormField<T> static method

Widget wrapInFormField<T>({
  1. required FormFieldValidator<T>? validator,
  2. required Widget child,
  3. String? labelText,
  4. bool? filled,
  5. InputBorder? border,
  6. double childTopPadding = 5,
  7. EdgeInsetsGeometry? contentPadding,
  8. Widget? suffixIcon,
})

Wraps a widget in a FormField with InputDecorator for validation display.

Parameters:

  • validator: Form field validator function
  • child: The widget to wrap
  • labelText: Optional label text
  • filled: Whether the field is filled
  • border: Optional input border
  • childTopPadding: Top padding for child. Defaults to 5
  • contentPadding: Optional content padding
  • suffixIcon: Optional suffix icon widget

Useful for adding validation to custom widgets that aren't form fields.

Implementation

static Widget wrapInFormField<T>(
    {required FormFieldValidator<T>? validator,
    required Widget child,
    String? labelText,
    bool? filled,
    InputBorder? border,
    double childTopPadding = 5,
    EdgeInsetsGeometry? contentPadding,
    Widget? suffixIcon}) {
  return FormField(
    validator: validator,
    builder: (field) {
      return InputDecorator(
        decoration: InputDecoration(
            //isDense: true,
            contentPadding: contentPadding ?? EdgeInsets.zero,
            border: border,
            //fillColor: Colors.transparent,
            errorText: field.errorText,
            //errorBorder: InputBorder.none,
            labelText: labelText,
            //border: InputBorder.none,
            filled: filled,
            suffixIcon: suffixIcon),
        child: child.paddingTop(childTopPadding),
      );
    },
  );
}