Je suis en train de créer un défilement horizontal de la liste des éléments dans le battement, et je veux que la liste de ne prendre que le nécessaire la hauteur en fonction de ses enfants. De par leur conception "ListView
tente de développer pour s'adapter à l'espace disponible dans son contre-sens" (du Flutter docs), que j'ai aussi l'avis qu'il occupe toute la hauteur de la fenêtre d'affichage, mais est-il une façon de faire ne pas le faire? Idéalement quelque chose de similaire à ceci (qui évidemment ne fonctionne pas):
new ListView(
scrollDirection: Axis.horizontal,
crossAxisSize: CrossAxisSize.min,
children: <Widget>[
new ListItem(),
new ListItem(),
// ...
],
);
Je me rends compte que la seule façon de le faire est par emballage de la ListView
en Container
avec une hauteur fixe. Cependant, je n'ai pas forcément connaître la hauteur des éléments:
new Container(
height: 97.0,
child: new ListView(
scrollDirection: Axis.horizontal,
children: <Widget>[
new ListItem(),
new ListItem(),
// ...
],
),
);
J'ai été en mesure de pirater ensemble une "solution" par nidification Row
en SingleChildScrollView
en Column
avec un mainAxisSize: MainAxisSize.min
. Toutefois, cela ne ressemble pas à une solution, pour moi:
new Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
new SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: new Row(
children: <Widget>[
new ListItem(),
new ListItem(),
// ...
],
),
),
],
);