【问题标题】:How to add a Spacer in a ListView如何在 ListView 中添加 Spacer
【发布时间】:2021-09-03 01:14:58
【问题描述】:

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

Column(
  children: [
    Text('1'),
    Text('2'),
    Spacer(),
    Text('3'),
    Text('4'),
  ],
),

所以屏幕是这样的:

---
 1
 2



 3
 4
---

它允许我始终在顶部对齐 '1''2',在我的小部件底部对齐 '3''4',而与它的大小无关。


但是,当小部件变得太小时,它会溢出:

---
 1
 2
 3
---
 4  // <- Overflow

因此,我想用ListView 达到相同的结果,所以:

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

我无法使用SpacerListView。它向我抛出了错误:

Failed assertion: line 1940 pos 12: 'hasSize'

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

【问题讨论】:

标签: flutter flutter-layout flutter-listview


【解决方案1】:

尝试将 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'),
           ],
        ),
      ],
    ),
  )

【讨论】:

  • 您好,但是如果小部件很小,这将无法滚动,对吧?
猜你喜欢
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
  • 2011-05-14
  • 2014-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多