Flutter - Formulary Verification

Viewed 28

Im very, VERY layman with flutter and programation, and that is my first app! Basically i need to do a formulary with autocomplete (with validation). But im stuck on verification, not verifying and not showing the sent message. As I understand it, it is giving the error No MaterialLocalizations found, anyone can help me pls?

import 'package:flutter/material.dart';
import 'package:validatorless/validatorless.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  MyApp({Key? key}) : super(key: key);
  final _formKey = GlobalKey<FormState>();
  TextEditingController controllerMes = new TextEditingController();
  TextEditingController controllerDia = new TextEditingController();
  TextEditingController controllerNome = new TextEditingController();
  TextEditingController controllerIdade = new TextEditingController();
  TextEditingController controllerEmpregado = new TextEditingController();
  TextEditingController controllerSexo = new TextEditingController();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'Example',
        theme: ThemeData(primarySwatch: Colors.blue),
        home: SafeArea(
            child: Scaffold(
                appBar: AppBar(title: Text('Formulário')),
                body: Column(
                  children: [
                    Container(
                        padding: EdgeInsets.all(10),
                        alignment: Alignment.center,
                        child: EasyAutocomplete(
                          suggestions: [],
                          controller: controllerNome,
                          validator: (controllerNome) {
                            if (controllerNome == null ||
                                controllerNome.isEmpty) {
                              return 'Please enter some text';
                            }
                          },
                          decoration: InputDecoration(
                            labelText: 'Nome Completo',
                            suffixIcon: Icon(Icons.data_usage_outlined),
                          ),
                        )),
                    Container(
                        padding: EdgeInsets.all(10),
                        alignment: Alignment.center,
                        child: EasyAutocomplete(
                          suggestions: [],
                          controller: controllerIdade,
                          decoration: InputDecoration(
                            labelText: 'Idade',
                            suffixIcon: Icon(Icons.data_usage_outlined),
                          ),
                          validator: (value) {
                            if (value == null || value.isEmpty) {
                              return 'Please enter some text';
                            }
                            return null;
                          },
                        )),
                    Container(
                        padding: EdgeInsets.all(10),
                        alignment: Alignment.center,
                        child: EasyAutocomplete(
                          suggestions: ['Masculino', 'Feminino', 'Outro: '],
                          controller: controllerSexo,
                          decoration: InputDecoration(
                            labelText: 'Sexo',
                            suffixIcon: Icon(Icons.data_usage_outlined),
                          ),
                          validator: (value) {
                            if (value == null || value.isEmpty) {
                              return 'Please enter some text';
                            }
                            return null;
                          },
                        )),
                    Container(
                        padding: EdgeInsets.all(10),
                        alignment: Alignment.center,
                        child: EasyAutocomplete(
                          suggestions: ['Sim', 'Não', 'Autônomo'],
                          controller: controllerEmpregado,
                          decoration: InputDecoration(
                            labelText: 'Empregado?',
                            suffixIcon: Icon(Icons.data_usage_outlined),
                          ),
                          validator: (value) {
                            if (value == null || value.isEmpty) {
                              return 'Please enter some text';
                            }
                            return null;
                          },
                        )),
                    Container(
                        padding: EdgeInsets.all(10),
                        alignment: Alignment.center,
                        child: EasyAutocomplete(
                          suggestions: [
                            '01',
                            '02',
                            '03',
                            '04',
                            '05',
                            '06',
                            '07',
                            '08',
                            '09',
                            '10',
                            '11',
                            '12',
                            '13',
                            '14',
                            '15',
                            '16',
                            '17',
                            '18',
                            '19',
                            '20',
                            '21',
                            '22',
                            '23',
                            '24',
                            '25',
                            '26',
                            '27',
                            '28',
                            '29',
                            '30',
                            '31'
                          ],
                          controller: controllerDia,
                          decoration: InputDecoration(
                            labelText: 'Dia de nascimento',
                            suffixIcon: Icon(Icons.data_usage_outlined),
                          ),
                          validator: (value) {
                            if (value == null || value.isEmpty) {
                              return 'Please enter some text';
                            }
                            return null;
                          },
                        )),
                    Container(
                        padding: EdgeInsets.all(10),
                        alignment: Alignment.center,
                        child: EasyAutocomplete(
                          validator: (value) {
                            if (value == null || value.isEmpty) {
                              return 'Please enter some text';
                            }
                            return null;
                          },
                          suggestions: [
                            '01',
                            '02',
                            '03',
                            '04',
                            '05',
                            '06',
                            '07',
                            '08',
                            '09',
                            '10',
                            '11',
                            '12'
                          ],
                          controller: controllerMes,
                          decoration: InputDecoration(
                            labelText: 'Mês de Nascimento',
                            suffixIcon: Icon(Icons.data_usage_outlined),
                          ),
                        )),
                    ElevatedButton(
                      child: Text('Enviar'),
                      style: ElevatedButton.styleFrom(
                        primary: Colors.teal,
                        onPrimary: Colors.white,
                        shape: const BeveledRectangleBorder(
                            borderRadius: BorderRadius.all(Radius.circular(5))),
                      ),
                      onPressed: () => showDialog(
                          context: context,
                          builder: (context) => AlertDialog(
                                title: Text('ENVIADO!'),
                              )),
                    )
                  ],
                ))));
  }
}
0 Answers
Related