Ich versuche, eine horizontale Bildlaufliste mit Elementen in Flutter zu erstellen, und ich möchte, dass diese Liste nur die erforderliche Höhe basierend auf ihren untergeordneten Elementen einnimmt. Mit Absicht " ListViewversucht zu erweitern, um den verfügbaren Raum in seiner Querrichtung anzupassen " (aus den Flutter-Dokumenten ), was ich auch dadurch bemerke, dass es die gesamte Höhe des Ansichtsfensters einnimmt, aber es gibt eine Möglichkeit, dies nicht zu tun Dies? Im Idealfall etwas Ähnliches (was offensichtlich nicht funktioniert):
new ListView(
scrollDirection: Axis.horizontal,
crossAxisSize: CrossAxisSize.min,
children: <Widget>[
new ListItem(),
new ListItem(),
// ...
],
);
Mir ist klar , dass ein Weg , dies zu tun ist durch die Umhüllung ListViewin einem Containermit einer festen Höhe. Ich kenne jedoch nicht unbedingt die Höhe der Gegenstände:
new Container(
height: 97.0,
child: new ListView(
scrollDirection: Axis.horizontal,
children: <Widget>[
new ListItem(),
new ListItem(),
// ...
],
),
);
Ich konnte eine „Lösung“ zusammen hacken, indem ich a Rowin a SingleChildScrollViewin a Columnmit a verschachtelte mainAxisSize: MainAxisSize.min. Für mich ist dies jedoch keine Lösung:
new Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
new SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: new Row(
children: <Widget>[
new ListItem(),
new ListItem(),
// ...
],
),
),
],
);