Я новичок во Flutter (и Dart), и при попытке создать форму для редактирования объекта я искал в Интернете примеры и учебные пособия, и я увидел, что оба они использовались.
В чем разница между 2? Какой я должен использовать?
Благодарю.
Я новичок во Flutter (и Dart), и при попытке создать форму для редактирования объекта я искал в Интернете примеры и учебные пособия, и я увидел, что оба они использовались.
В чем разница между 2? Какой я должен использовать?
Благодарю.
Если вы создаете
Form
которой вам требуется сохранить, сбросить или подтвердить operations-, используйтеTextFormField
. Иначе Для простого ввода пользовательского ввода достаточноTextField
.
TextFormField
, который интегрируется с виджетом Form
.
Это удобный виджет, который оборачивает виджет TextField в FormField.
Form
предка не требуется. Форма просто упрощает сохранение, сброс или проверку нескольких полей одновременно.
Чтобы использовать без формы, передайте GlobalKey в конструктор и используйте GlobalKey.currentState для сохранения или сброса поля формы.
образец:
TextFormField(
decoration: const InputDecoration(
icon: Icon(Icons.person),
hintText: 'What do people call you?',
labelText: 'Name *',
),
onSaved: (String value) {
// This optional block of code can be used to run
// code when the user saves the form.
},
validator: (String value) {
return value.contains('@') ? 'Do not use the @ char.' : null;
},
)
TextField
, которое является основным текстовым полем без интеграции Form
.
Текстовое поле вызывает onChanged
вызов onChanged
всякий раз, когда пользователь изменяет текст в поле. Если пользователь указывает, что он завершил набор текста в поле (например, нажатием кнопки на программной клавиатуре), текстовое поле вызывает onSubmitted
вызов onSubmitted
.
TextField
- это простое текстовое поле. (вас не волнует пользовательский ввод) TextFormField
- текстовое поле, которое будет использоваться в форме (вы заботитесь о пользовательском вводе).
Если вам не нужно проверять TextField
. Если вам нужно проверить ввод пользователя, используйте TextFormField с validator
.