TfTextFormField class

带校验的输入框,用在 Flutter 的 Form 里。

外观与 TfTextField 相同,另外支持 validator、onSaved 和表单重置。 默认在输入框失去焦点时校验一次。调用 formKey.currentState!.validate() 会校验表单中的所有字段,并在出错的字段下显示错误。

controller 和 initialValue 只能二选一。

final _formKey = GlobalKey<FormState>();
final _email = TextEditingController();

Form(
  key: _formKey,
  child: Column(children: [
    TfTextFormField(
      controller: _email,
      placeholder: '邮箱',
      prefixIcon: Icons.mail_outline,
      keyboardType: TextInputType.emailAddress,
      validator: TfValidators.of(context).email(),
    ),
    TfButton(
      label: '提交',
      onPressed: () {
        if (_formKey.currentState!.validate()) submit(_email.text);
      },
    ),
  ]),
)
Inheritance

Constructors

TfTextFormField({Key? key, TextEditingController? controller, String? initialValue, FocusNode? focusNode, String? placeholder, IconData? prefixIcon, IconData? suffixIcon, String? suffixTooltip, VoidCallback? onSuffixTap, bool obscureText = false, int maxLines = 1, TextInputType? keyboardType, TextInputAction? textInputAction, Iterable<String>? autofillHints, ValueChanged<String>? onChanged, ValueChanged<String>? onFieldSubmitted, FormFieldValidator<String>? validator, FormFieldSetter<String>? onSaved, bool enabled = true, AutovalidateMode? autovalidateMode})
参数含义与 TfTextField 相同;onFieldSubmitted 对应按下回车。

Properties

autovalidateMode → AutovalidateMode
Used to enable/disable this form field auto validation and update its error text.
finalinherited
builder → FormFieldBuilder<String>
Function that returns the widget representing this form field.
finalinherited
controller → TextEditingController?
用于读写输入内容(可选);不传时组件内部自行管理。
final
enabled → bool
Whether the form is able to receive user input.
finalinherited
errorBuilder → FormFieldErrorBuilder?
Function that returns the widget representing the error to display.
finalinherited
forceErrorText → String?
An optional property that forces the FormFieldState into an error state by directly setting the FormFieldState.errorText property without running the validator function.
finalinherited
hashCode → int
The hash code for this object.
no setterinherited
initialValue → String?
An optional value to initialize the form field to, or null otherwise.
finalinherited
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
onReset → VoidCallback?
An optional method to call when the form field is reset via FormFieldState.reset.
finalinherited
onSaved → FormFieldSetter<String>?
An optional method to call with the final value when the form is saved via FormState.save.
finalinherited
restorationId → String?
Restoration ID to save and restore the state of the form field.
finalinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
validator → FormFieldValidator<String>?
An optional method that validates an input. Returns an error string to display if the input is invalid, or null otherwise.
finalinherited

Methods

createElement() → StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() → FormFieldState<String>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() → List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) → String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String
Returns a one-line detailed description of the object.
inherited
toStringShort() → String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited