在Flutter中插入生成的列表

时间:2018-11-21 21:52:31

标签: dart flutter

目前我有此列表

List.generate(72, (index) {
    retrun Container(
        child: new Text('$index'),
    )
})

作为children小部件的GridView。但是,我想对某些索引值返回与$index不同的值。

为此,我有一个看起来像[{index: 2, value: test}{index: 5, value: hello}]的列表,其中包含很多索引/值对。所以这是问题:

如果匹配的索引在列表中,并且不是简单地返回GridView,现在是否有办法在$index字段中显示列表中的值?

仅作为示例,在1中具有索引GridView的字段应显示其索引,因此将显示1。但是索引为2的字段应显示列表中的匹配值test,依此类推。

1 个答案:

答案 0 :(得分:2)

您似乎应该将列表预处理为Map。如有必要,请对列表进行迭代,以将每个条目添加到地图中。

然后您可以:

  Map m = <int, String>{
    2: 'test',
    5: 'hello',
  };
  List<Container>.generate(72, (int index) {
    String s = m[index];
    return Container(
      child: Text(s != null ? s : '$index'),
    );
  });

或者更简洁地说是具有空感知的运算符

  List<Container>.generate(
    72,
    (int index) => Container(child: Text(m[index] ?? '$index')),
  );