правильным и оптимальным способом будет использование виджета Expanded
с Column
.
Использовать Expanded для содержимого экрана, которое занимает все пустое пространство, оставленное экраном, а затем поле ввода текста под ним. Вы можете увидеть вывод ниже.
return Scaffold(
appBar: AppBar(
title: AppBarTitle(title: "Profile"),
),
body: Column(
children: <Widget>[
Expanded(
child: ListView(
children: <Widget>[
Text("Message1"),
Text("Message2"),
Text("Message3"),
Text("Message4"),
Text("Message5"),
],
)),
Container(
padding: EdgeInsets.symmetric(vertical: 2.0),
child: Row(mainAxisAlignment: MainAxisAlignment.end, children: [
// First child is enter comment text input
Expanded(
child: TextFormField(
autocorrect: false,
decoration: new InputDecoration(
labelText: "Some Text",
labelStyle:
TextStyle(fontSize: 20.0, color: Colors.white),
fillColor: Colors.blue,
border: OutlineInputBorder(
// borderRadius:
// BorderRadius.all(Radius.zero(5.0)),
borderSide: BorderSide(color: Colors.purpleAccent)),
),
),
),
// Second child is button
IconButton(
icon: Icon(Icons.send),
iconSize: 20.0,
onPressed: () {},
)
])),
],
),
);