我正在尝试在Flutter中创建项目的水平滚动列表,并且希望该列表仅基于子元素占据必要的高度。通过设计“ListView
试图扩展以适应其横向的可用空间”(来自Flutter docs),我也注意到它占用了视口的整个高度,但是有一种方法可以使其不做这个?理想情况下,类似于以下内容(显然不起作用):
new ListView(
scrollDirection: Axis.horizontal,
crossAxisSize: CrossAxisSize.min,
children: <Widget>[
new ListItem(),
new ListItem(),
// ...
],
);
我认识到,一个做到这一点的方法是通过包装ListView
在Container
一个固定的高度。但是,我不一定知道这些物品的高度:
new Container(
height: 97.0,
child: new ListView(
scrollDirection: Axis.horizontal,
children: <Widget>[
new ListItem(),
new ListItem(),
// ...
],
),
);
我能够通过嵌套一个砍一起“解决方案”Row
中SingleChildScrollView
的Column
一个mainAxisSize: MainAxisSize.min
。但是,对我来说,这似乎不是解决方案:
new Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
new SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: new Row(
children: <Widget>[
new ListItem(),
new ListItem(),
// ...
],
),
),
],
);