目前我有此列表
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
,依此类推。
答案 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')),
);