如何在ListView中添加Spacer

Val*_*nal 6 flutter flutter-layout flutter-listview

现在我正在使用一列来显示几个小部件:

Column(
  children: [
    Text('1'),
    Text('2'),
    Spacer(),
    Text('3'),
    Text('4'),
  ],
),
Run Code Online (Sandbox Code Playgroud)

所以屏幕看起来像这样:

---
 1
 2



 3
 4
---
Run Code Online (Sandbox Code Playgroud)

它允许我始终在小部件的顶部和底部对齐'1'和,而不管其大小。'2''3''4'


然而,当小部件变得太小时,它就会溢出:

---
 1
 2
 3
---
 4  // <- Overflow
Run Code Online (Sandbox Code Playgroud)

因此,我想用 so 达到相同的结果ListView

  • 当小部件足够高时,'1' '2'顶部对齐和'3' '4'底部对齐。
  • '2'当小部件不够高时,和之间不再有多余的空间'3',但用户可以向下滚动。

我无法使用Spacera ListView。它向我抛出错误:

Failed assertion: line 1940 pos 12: 'hasSize'
Run Code Online (Sandbox Code Playgroud)

实施它的正确方法是什么?

小智 0

尝试将 Text('1') 和 Text('2') 添加到一列,并将 Text('3') 和 Text('4') 添加到另一列。然后将这两列添加到展开的父列中,并将父列的主轴对齐方式设置为 spaceBetween。类似于下面的代码:

  Expanded(
    ParentColumn(
      mainAxisAlignment: MainAxisAlignment.spaceBetween,
      children:[
        Column1(
          children: [
            Text('1'),
            Text('2'),
           ],
        ),
        Column2(
          children: [
            Text('3'),
            Text('4'),
           ],
        ),
      ],
    ),
  )
Run Code Online (Sandbox Code Playgroud)