Я пытаюсь создать список горизонтальной прокрутки во 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(),
// ...
],
),
),
],
);