ListView不会在横轴上增长

时间:2018-06-20 17:10:36

标签: flutter

常规的垂直ListView将填充两个轴上的所有空间,而shrinkWrap将使其在主轴上收缩 ,但是,如何使它在交叉轴上收缩呢? ,是否只占用最大孩子所需的空间,同时又受最大可用水平空间的限制?像这样:

enter image description here

1 个答案:

答案 0 :(得分:2)

你不能。

仅当儿童在屏幕上可见时,他们才被布置。这意味着ListView不知道其子级的最大跨轴尺寸。

如果孩子数量少,则可以将ListView替换为SingleChildSrollView,然后将包含所有孩子的Column添加为孩子

 SingleChildScrollView(
    physics: BouncingScrollPhysics(),
    child: Column(
      mainAxisSize: MainAxisSize.min,
      children: <Widget>[
        Container(
          color: Colors.red,
          width: 50.0,
          height: 200.0,
        ),
        Container(
          color: Colors.yellow,
          width: 100.0,
          height: 200.0,
        ),
        Container(
          color: Colors.red,
          width: 50.0,
          height: 200.0,
        ),
        Container(
          color: Colors.red,
          width: 50.0,
          height: 200.0,
        ),
      ],
    ),
  ),