Flutter - keyboard over TextFormField

3,513
 //Add this line "resizeToAvoidBottomInset: true," to your Scaffold and put your main container in ScrollView.

  @override
  Widget build(BuildContext context) {
     return Scaffold(
       resizeToAvoidBottomInset: true,
       key: _scaffoldKey,
       backgroundColor: Colors.white,
       body: SingleChildScrollView(    
          child: Container()
   ),
 );
}
Share:
3,513
Stepan
Author by

Stepan

Updated on December 04, 2022

Comments

  • Stepan
    Stepan over 1 year

    I have a some kind of login page in an app. However, when I focus to TextFormField, keyboard overlay the fields and nothing is seen. As Android dev,

    I normally fix it by adding android:windowSoftInputMode="adjustResize|stateHidden to manifest.

    How to solve it in Flutter?

    CODE:

    @override
      Widget build(BuildContext context) {
        return Scaffold(
          backgroundColor: Colors.white,
          body: ListView(
            children: <Widget>[
              Center(child: Image(image: AssetImage("images/uhk.jpg"))),
              Form(
                key: formKey,
                child: Padding(
                  padding: EdgeInsets.only(top: 20.0, left: 30.0, right: 30.0),
                  child: Column(
                    children: <Widget>[
                      TextFormField(
                          decoration:
                              new InputDecoration(labelText: "Přihlašovací jméno"),
                          maxLines: 1,
                          keyboardType: TextInputType.emailAddress,
                          onSaved: (String value) => ""),
                      TextFormField(
                          decoration: new InputDecoration(labelText: "Heslo"),
                          maxLines: 1,
                          obscureText: true,
                          onSaved: (String value) => ""),
                    ],
                  ),
                ),
              ),
              Padding(
                  padding: EdgeInsets.only(top: 50.0, left: 30.0, right: 30.0),
                  child: RaisedButton(
                      child: Text("Přihlásit se",
                          style: TextStyle(
                              fontSize: 16.0, color: Colors.white, height: 3.0)),
                      color: Colors.lightBlue,
                      onPressed: () => "")),
              Padding(
                  padding: EdgeInsets.only(
                    top: 20.0,
                  ),
                  child: Center(
                      child: FlatButton(
                      onPressed: () => "",
                      child: Text("Vytvořit účet",
                        style: TextStyle(fontSize: 14.0, color: Colors.grey)),
                  ))),
            ],
          ),
    }