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!'),
)),
)
],
))));
}
}