Я хочу сделать простой экран, который показывает несколько текстовых полей в столбце, некоторое содержимое вверху и кнопку внизу.При первой попытке, без SingleChildScrollView, я получил ошибку «renderflex overflowed», которую можно устранить, поместив TextField в SingeChildScrollView.Теперь у меня проблема в том, что SingleChildScrollView находится слишком высоко на моем экране, когда я выбираю любой TextField, и клавиатура всплывает.Я хочу, чтобы он оставался в основном там, где он есть, поскольку достаточно места (желтого цвета) для клавиатуры под SingleChildScrollView. Этот Gif показывает поведение моего приложения.
Этот Gif показывает поведение, которое я ожидал. Я попытался применить код из примера FlatApp-Flutter к моему приложению, но не смог найти часть, которая на самом деле решает мою проблему.Кто-нибудь знает, как я могу контролировать, насколько клавиатура толкает SingleChildScrollView вверх или как я могу решить эту проблему?Большое спасибо.
Scaffold(
backgroundColor: Colors.yellow,
body: new SingleChildScrollView(
controller: _scrollController,
child: new Container(
margin: EdgeInsets.fromLTRB(10.0, 10.0, 10.0, 10.0),
color: Colors.orange,
child: new Column(children: <Widget>[
new Container(
margin: EdgeInsets.fromLTRB(10.0, 10.0, 10.0, 20.0),
height: 200.0,
width: 200.0,
color: Colors.grey,
child: new Center(
child: Text("Show some stuff"),
),
),
new Container(
color: Colors.blue,
child: new Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new TextField(
decoration: InputDecoration(labelText: "Label 1"),
),
new TextField(
decoration: InputDecoration(labelText: "Label 2"),
),
],
),
),
new RaisedButton(
child: const Text('Start'),
color: Theme.of(context).accentColor,
textColor: Colors.white,
elevation: 4.0,
splashColor: Colors.blueGrey,
onPressed: () {
// Perform some action
//button1(context);
},
),
]),
)));
}