Forms

No Flutter, você pode criar formulários (forms) para coletar dados do usuário usando o widget Form. Um Form é um widget que agrupa campos de entrada, como TextField, DropdownButton, Radio, Checkbox e outros widgets de entrada, para permitir a entrada de dados do usuário. Aqui está um exemplo básico de como usar um Form em conjunto com alguns widgets de entrada:

class MyForm extends StatefulWidget {
  @override
  _MyFormState createState() => _MyFormState();
}

class _MyFormState extends State<MyForm> {
  final _formKey = GlobalKey<FormState>();
  String _name = '';
  String _email = '';

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Formulário Flutter'),
      ),
      body: Padding(
        padding: EdgeInsets.all(16.0),
        child: Form(
          key: _formKey,
          child: Column(
            children: <Widget>[
              TextFormField(
                decoration: InputDecoration(labelText: 'Nome'),
                validator: (value) {
                  if (value.isEmpty) {
                    return 'Por favor, insira um nome';
                  }
                  return null;
                },
                onSaved: (value) {
                  _name = value;
                },
              ),
              TextFormField(
                decoration: InputDecoration(labelText: 'E-mail'),
                validator: (value) {
                  if (value.isEmpty) {
                    return 'Por favor, insira um e-mail';
                  }
                  return null;
                },
                onSaved: (value) {
                  _email = value;
                },
              ),
              SizedBox(height: 20),
              ElevatedButton(
                onPressed: () {
                  if (_formKey.currentState.validate()) {
                    _formKey.currentState.save();
                    // Faça algo com os dados inseridos, como enviar para um servidor
                    print('Nome: $_name, E-mail: $_email');
                  }
                },
                child: Text('Enviar'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Neste exemplo, o widget Form contém dois campos de entrada (TextFormField), um para o nome e outro para o e-mail. O botão “Enviar” só é habilitado quando o formulário é válido (ou seja, quando os campos não estão vazios). Quando o botão é pressionado, o método onPressed é chamado, validando e salvando os dados do formulário.

No Flutter, os formulários são frequentemente usados com a validação de entrada para garantir que os dados inseridos pelos usuários sejam válidos antes de serem processados. Você pode personalizar ainda mais seu formulário adicionando outros tipos de campos de entrada e validações de acordo com os requisitos do seu aplicativo.