Я пытаюсь создать горизонтальный список элементов прокрутки во Flutter, и я хочу, чтобы этот список занимал только необходимую высоту, основываясь на его дочерних элементах. По замыслу " ListView
пытается расширяться, чтобы соответствовать пространству, доступному в его поперечном направлении" (из документов Flutter), что я также замечаю в том, что он занимает всю высоту области просмотра, но есть ли способ сделать это не сделай это? В идеале что-то похожее на это (что, очевидно, не работает):
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
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(),
// ...
],
),
),
],
);