Виджет TextFormField
Виджет TextFormField оборачивает TextField и добавляет validator, onSaved и связь с Form. Режим проверки задают через AutovalidateMode.
Синтаксис
TextFormField(
controller: controller,
decoration: InputDecoration(labelText: 'abcde'),
validator: (value) => null,
)
Параметры
| Параметр | Описание |
|---|---|
controller |
Контроллер текста. Тип TextEditingController.
|
decoration |
Оформление поля. Тип InputDecoration.
|
validator |
Функция проверки. Возвращает текст ошибки или null. |
onSaved |
Вызывается при save у FormState с текущим значением.
|
autovalidateMode |
Когда запускать validator. Тип AutovalidateMode.
|
initialValue |
Начальная строка, если нет controller. |
Пример
Давайте выведем поле с подписью по центру экрана:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: TextFormField(
decoration: const InputDecoration(
labelText: 'abcde',
border: OutlineInputBorder(),
),
),
),
),
),
);
}
На экране появится поле с подписью 'abcde' и рамкой Material.
Пример
Давайте зададим начальное значение и проверку:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: TextFormField(
initialValue: '12345',
validator: (v) => v!.isEmpty ? 'empty' : null,
decoration: const InputDecoration(hintText: 'abcde'),
),
),
),
),
);
}
На экране поле уже содержит '12345', проверка сработает при отправке формы.
Смотрите также
-
виджет
Form,
который объединяет поля формы -
виджет
TextField,
который принимает текст с клавиатуры -
перечисление
AutovalidateMode,
который решает, когда проверять форму -
класс
FormState,
который управляет проверкой и сохранением