我正在尝试在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(),
// ...
],
),
);
我能够通过 SingleChildScrollView
将 SingleChildScrollView
嵌套在 Column
中,并将_1836010_与 mainAxisSize: MainAxisSize.min
嵌套在一起来解决“解决方案” . 但是,对我来说,这不是一个解决方案:
new Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
new SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: new Row(
children: <Widget>[
new ListItem(),
new ListItem(),
// ...
],
),
),
],
);
1 回答
只需将
ListView
的shrink
属性设置为true
,它将适合空间而不是扩展 .例: