Вот пример использования виджета TextFormFieldво Flutter, а также некоторых часто используемых методов:
import 'package:flutter/material.dart';
class MyForm extends StatefulWidget {
@override
_MyFormState createState() => _MyFormState();
}
class _MyFormState extends State<MyForm> {
final _formKey = GlobalKey<FormState>();
TextEditingController _textEditingController = TextEditingController();
@override
void dispose() {
_textEditingController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Form(
key: _formKey,
child: Column(
children: [
TextFormField(
controller: _textEditingController,
decoration: InputDecoration(
labelText: 'Enter your name',
),
validator: (value) {
if (value.isEmpty) {
return 'Please enter your name';
}
return null;
},
),
ElevatedButton(
onPressed: () {
if (_formKey.currentState.validate()) {
// Form is valid, do something
String name = _textEditingController.text;
print('Hello, $name!');
}
},
child: Text('Submit'),
),
],
),
);
}
}
В этом примере у нас есть простая форма с виджетом TextFormField. TextFormFieldиспользуется для захвата вводимых пользователем данных, в данном случае имени пользователя. Свойство validatorиспользуется для проверки ввода, гарантируя, что он не пуст. Форма заключена в виджет Form, который помогает управлять состоянием формы и ее проверкой. При нажатии кнопки отправки форма проверяется, и если она действительна, имя выводится на консоль.