我正在尝试创建一个横向滚动列表的项目在 Flutter,我希望该列表只采取必要的高度基于其子。通过设计“ ListView
试图扩展以适应其跨方向的可用空间”(从 颤动医生) ,我也注意到它占据了整个视窗的高度,但有没有办法使它不这样做?理想情况下,类似于这样的东西(显然不起作用) :
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(),
// ...
],
),
),
],
);