У меня в приложении есть какая-то страница входа. Однако, когда я сосредотачиваюсь на 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)),
))),
],
),
}
В манифесте есть одна строка кода. Ошибка может быть где-то в моем пользовательском коде (возможно, я просто использую плохие оболочки или что-то в этом роде).
//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()
),
);
}
Flutter использует аппаратную клавиатуру, поэтому ваше обычное исправление должно работать