Flutter - клавиатура поверх TextFormField

У меня в приложении есть какая-то страница входа. Однако, когда я сосредотачиваюсь на TextFormField, клавиатура перекрывает поля, и ничего не видно. Как разработчик Android,

Обычно я исправляю это, добавляя android:windowSoftInputMode = "adjustResize|stateHidden в манифест.

Как решить это во Flutter?

КОД:

@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)),
              ))),
        ],
      ),
}

Flutter использует аппаратную клавиатуру, поэтому ваше обычное исправление должно работать

Jonah Williams 11.03.2018 02:29

В манифесте есть одна строка кода. Ошибка может быть где-то в моем пользовательском коде (возможно, я просто использую плохие оболочки или что-то в этом роде).

Stepan 11.03.2018 17:05
10
2
3 130
1

Ответы 1

 //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()
   ),
 );
}

Другие вопросы по теме