TextFormField constructor

TextFormField({Key key, TextEditingController controller, String initialValue, FocusNode focusNode, InputDecoration decoration: const InputDecoration(), TextInputType keyboardType, TextCapitalization textCapitalization: TextCapitalization.none, TextInputAction textInputAction, TextStyle style, TextDirection textDirection, TextAlign textAlign: TextAlign.start, bool autofocus: false, bool obscureText: false, bool autocorrect: true, bool autovalidate: false, bool maxLengthEnforced: true, int maxLines: 1, int maxLength, VoidCallback onEditingComplete, ValueChanged<String> onFieldSubmitted, FormFieldSetter<String> onSaved, FormFieldValidator<String> validator, List<TextInputFormatter> inputFormatters, bool enabled: true, Brightness keyboardAppearance, EdgeInsets scrollPadding: const EdgeInsets.all(20.0), bool enableInteractiveSelection: true })

Creates a FormField that contains a TextField.

When a controller is specified, initialValue must be null (the default). If controller is null, then a TextEditingController will be constructed automatically and its text will be initialized to initalValue or the empty string.

For documentation about the various parameters, see the TextField class and new TextField, the constructor.

Implementation

TextFormField({
  Key key,
  this.controller,
  String initialValue,
  FocusNode focusNode,
  InputDecoration decoration = const InputDecoration(),
  TextInputType keyboardType,
  TextCapitalization textCapitalization = TextCapitalization.none,
  TextInputAction textInputAction,
  TextStyle style,
  TextDirection textDirection,
  TextAlign textAlign = TextAlign.start,
  bool autofocus = false,
  bool obscureText = false,
  bool autocorrect = true,
  bool autovalidate = false,
  bool maxLengthEnforced = true,
  int maxLines = 1,
  int maxLength,
  VoidCallback onEditingComplete,
  ValueChanged<String> onFieldSubmitted,
  FormFieldSetter<String> onSaved,
  FormFieldValidator<String> validator,
  List<TextInputFormatter> inputFormatters,
  bool enabled = true,
  Brightness keyboardAppearance,
  EdgeInsets scrollPadding = const EdgeInsets.all(20.0),
  bool enableInteractiveSelection = true,
}) : assert(initialValue == null || controller == null),
     assert(textAlign != null),
     assert(autofocus != null),
     assert(obscureText != null),
     assert(autocorrect != null),
     assert(autovalidate != null),
     assert(maxLengthEnforced != null),
     assert(scrollPadding != null),
     assert(maxLines == null || maxLines > 0),
     assert(maxLength == null || maxLength > 0),
     assert(enableInteractiveSelection != null),
     super(
  key: key,
  initialValue: controller != null ? controller.text : (initialValue ?? ''),
  onSaved: onSaved,
  validator: validator,
  autovalidate: autovalidate,
  enabled: enabled,
  builder: (FormFieldState<String> field) {
    final _TextFormFieldState state = field;
    final InputDecoration effectiveDecoration = (decoration ?? const InputDecoration())
      .applyDefaults(Theme.of(field.context).inputDecorationTheme);
    return TextField(
      controller: state._effectiveController,
      focusNode: focusNode,
      decoration: effectiveDecoration.copyWith(errorText: field.errorText),
      keyboardType: keyboardType,
      textInputAction: textInputAction,
      style: style,
      textAlign: textAlign,
      textDirection: textDirection,
      textCapitalization: textCapitalization,
      autofocus: autofocus,
      obscureText: obscureText,
      autocorrect: autocorrect,
      maxLengthEnforced: maxLengthEnforced,
      maxLines: maxLines,
      maxLength: maxLength,
      onChanged: field.didChange,
      onEditingComplete: onEditingComplete,
      onSubmitted: onFieldSubmitted,
      inputFormatters: inputFormatters,
      enabled: enabled,
      scrollPadding: scrollPadding,
      keyboardAppearance: keyboardAppearance,
      enableInteractiveSelection: enableInteractiveSelection,
    );
  },
);