Flutter List.generate 但反过来?
Flutter List.generate but in reverse?
我有一个容器,我正在尝试打印列表中的项目,减去列表中的最后一项。我正在使用 list.generate:
child: Container(
width: double.infinity,
color: Colors.white,
child: ListView(
padding: const EdgeInsets.only(top: 10.0),
children: List.generate(
Provider.of<WeekList>(context).listOfWeeks.toList().length -
1,
(index) => ListTileCustom(
index: index,
),
),
),
),
我的问题是当它打印出我的自定义 ListTileCustom
小部件时,每个添加到列表的新项目都被添加到视图的底部而不是顶部。
上图中的顺序应该是:
- 红条
- 红/绿条
- 绿条
当我通过按下按钮添加新项目时,它们应该被添加到顶部而不是底部。
我尝试添加 reverse: true
并且得到了正确的顺序但是将所有内容移到了底部并在它们上面添加了一吨白色 space ...也不确定卷轴是否可以在在那一点上也是正确的方向。
要在 Dart 中反转列表,您可以使用 ..reversed
方法。在您发布的代码中,这将是:children: List.generate(/* omitted */).reversed.toList()
.
另一个(可能更好)的解决方案是直接在children
中使用for loop
,例如:
ListView(
children: [
for (int i = 0; i < 5; i++) FlutterLogo(),
],
)
使用这种方法,您可以通过更改循环轻松反转列表(并根据需要省略一个元素),例如for (int i = 10; i > 1; i--)
什么的。
我有一个容器,我正在尝试打印列表中的项目,减去列表中的最后一项。我正在使用 list.generate:
child: Container(
width: double.infinity,
color: Colors.white,
child: ListView(
padding: const EdgeInsets.only(top: 10.0),
children: List.generate(
Provider.of<WeekList>(context).listOfWeeks.toList().length -
1,
(index) => ListTileCustom(
index: index,
),
),
),
),
我的问题是当它打印出我的自定义 ListTileCustom
小部件时,每个添加到列表的新项目都被添加到视图的底部而不是顶部。
上图中的顺序应该是:
- 红条
- 红/绿条
- 绿条
当我通过按下按钮添加新项目时,它们应该被添加到顶部而不是底部。
我尝试添加 reverse: true
并且得到了正确的顺序但是将所有内容移到了底部并在它们上面添加了一吨白色 space ...也不确定卷轴是否可以在在那一点上也是正确的方向。
要在 Dart 中反转列表,您可以使用 ..reversed
方法。在您发布的代码中,这将是:children: List.generate(/* omitted */).reversed.toList()
.
另一个(可能更好)的解决方案是直接在children
中使用for loop
,例如:
ListView(
children: [
for (int i = 0; i < 5; i++) FlutterLogo(),
],
)
使用这种方法,您可以通过更改循环轻松反转列表(并根据需要省略一个元素),例如for (int i = 10; i > 1; i--)
什么的。