I'm trying to build an app front end with flutter and it's my first time so I faced some bugs like this one: there is no way to edit my textformfield because I putted my form elements in a listview ! when keyboard appears to enter some text to the field it disappears in a second ! I need an immediat solution please :(
import 'package:flutter/material.dart';import'package:dubai274_app/mobile_verif.dart';import 'EnsureVisible.dart';class SignUp extends StatefulWidget{ static String tag = 'Sign_up-page'; SignUp_Page createState() => SignUp_Page();}class SignUp_Page extends State<SignUp>{ List<DropdownMenuItem<String>> _Dropdownmenuitems; String _statusSel; List<DropdownMenuItem<String>> _getDropdownmenuitem(){ List<DropdownMenuItem<String>> items=new List(); items.add(new DropdownMenuItem(value:'Emirates',child: new Text('United Arab Emirates'))); items.add(new DropdownMenuItem(value:'Tun',child: new Text('Tunisia'))); return items; } void changeddropdowselecteditem(String selecteditem){ setState(() {_statusSel=selecteditem; }); } @override void initState() { // TODO: implement initState //listViewController=new ScrollController().addListener(_scrollListener); _Dropdownmenuitems=_getDropdownmenuitem(); _statusSel=_Dropdownmenuitems[0].value; }@override Widget build(BuildContext context) { final scaffoldKey = GlobalKey<ScaffoldState>(); final formKey = GlobalKey<FormState>(); final TextEditingController _controller = new TextEditingController();final first_value=TextFormField(autofocus: false, validator: (val) => val.length < 6 ? 'First name required' : null, decoration: InputDecoration( labelText: 'First Name', hintText: 'First Name', contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0), ),);final family_value=TextFormField(autofocus: false, decoration: InputDecoration( labelText: 'Last Name', hintText: 'Last Name', contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0), ),);final Nationality=new DropdownButton(items: _Dropdownmenuitems, value:_statusSel,onChanged: changeddropdowselecteditem);final email_value=TextFormField(keyboardType: TextInputType.emailAddress, autofocus: false, decoration: InputDecoration( labelText: 'Email', hintText: 'Email', contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0), ),);final password=Column(children: <Widget>[ TextFormField(autofocus: false, obscureText: true, decoration: InputDecoration( labelText: 'Password', hintText: 'Password', contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),)), Text('Min 8 characters with at least one special character')]); void _performsignup() { final snackbar = SnackBar( content: Text('Email: $email, password: $password'), ); scaffoldKey.currentState.showSnackBar(snackbar); } void _submit() { final form = formKey.currentState; if (form.validate()) { form.save(); Navigator.push( context, MaterialPageRoute(builder: (context) => MobileVerif()), ); _performsignup(); } }final forward_signedin=FloatingActionButton(tooltip: 'Go forward', child: Icon(Icons.arrow_forward,color: Colors.white,size: 38.4,), onPressed: (){_submit();},);return MaterialApp( title: 'Sign_Up_Page', home: Scaffold( appBar: AppBar( elevation: 0.0, backgroundColor: Colors.transparent, title: const Text('Sign Up',style: TextStyle(color: Colors.blueAccent, fontSize: 25.0,fontWeight: FontWeight.bold),textAlign: TextAlign.center,), centerTitle: true, leading: IconButton( tooltip: 'Previous choice', icon: const Icon(Icons.arrow_back_ios), onPressed: () { Navigator.pop(context);}, color: Colors.black, iconSize: 20.0, ), ), body: new Container( decoration: new BoxDecoration( image: new DecorationImage( image: new AssetImage("assets/background.png"), fit: BoxFit.cover, ), ), child: new Form( key: formKey, child: new Padding( padding: new EdgeInsets.all(40.0), child: ListView( children: <Widget>[ first_value, family_value, Nationality, email_value, password, new ListTile( title:forward_signedin,)],)) ) ), ), ); }}