@override
Widget build(BuildContext context) {
return new Column(
children: <Widget>[
new Text("Some text"),
ListView()
],
);
}
Widget ListView() {
return new ListView(
padding: new EdgeInsets.symmetric(vertical: 8.0),
children: Item());
}
List<Item> Item() {
return list
.map((item) => new Item(text: item))
.toList();
}
class Item extends ListTile {
Item({String text, GestureTapCallback onTap})
: super(
subtitle: new Column(children: <Widget>[
new Text(text),
]));
Un espace vide apparaît à l'écran et la console indique:
La fenêtre verticale a été définie sans hauteur. Les fenêtres s’étendent dans le sens de défilement pour remplir leur contenant.
Envelopper ListView dans Flexible le fera fonctionner.
Widget ListView() {
return new Flexible(child: new ListView(
padding: new EdgeInsets.symmetric(vertical: 8.0),
children: Item()));
}
La meilleure solution consiste à utiliser Flexible, mais si vous voulez lui donner une hauteur exacte, vous devez utiliser Container comme ceci:
Widget ListView() {
return Container(
height:100.0,
child: ListView(
padding: new EdgeInsets.symmetric(vertical: 8.0),
children: Item()));
}