child: ListView.builder(
itemExtent: 25.0,
itemCount: listOfTiles.length,
itemBuilder: (BuildContext context, int index) {
return TileContent(listOfTiles[index]);
})
这是'Widget build(BuildContext context)类的摘录。
_generateData() {
var categoryMap = {};
for (int i = 0; i < parties.length; i++) {
for (int j = 0; j < parties[i].pledgeCategory.length; j++) {
if (parties[i].pledgeCategory[j].contains(',')) {
var splitted = parties[i].pledgeCategory[j].split(',');
for (int k = 0; k < splitted.length; k++) {
if (splitted[k][0] == ' ' || splitted[k][0] == '(') {
splitted[k] = splitted[k].substring(1, splitted[k].length);
}
if (splitted[k][splitted[k].length - 1] == ' ' ||
splitted[k][splitted[k].length - 1] == ')') {
splitted[k] = splitted[k].substring(0, splitted[k].length - 1);
}
if (categoryMap.containsKey(splitted[k])) {
categoryMap.update(
splitted[k], (int) => categoryMap[splitted[k]].add(parties[i]));
} else {
categoryMap[splitted[k]] = [parties[i]];
}
}
} else {
if (categoryMap.containsKey(parties[i].pledgeCategory[j])) {
categoryMap.update(parties[i].pledgeCategory[j],
(int) => categoryMap[parties[i].pledgeCategory[j]].add(parties[i]));
} else {
categoryMap[parties[i].pledgeCategory[j]] = [parties[i]];
}
}
}
}
categoryMap.forEach((key, value) {
List<MyTile> temp = [];
for (int i = 0; i < value.length; i++){
temp.add(MyTile(value[i].pledge));
}
listOfTiles.add(MyTile(key, temp));
});
}
这是State类的摘录。
我正在尝试创建一个地图,该地图将通过forEach函数进行循环,并最终创建一个的列表。 MyTile类具有标题String和MyTile的可选列表。 MyTile的列表应在ListView.builder的每次迭代中创建ExpansionTile,但不显示任何内容。可能是因为程序传递给categoryMap的数据太多了吗?我看不到任何其他错误来源。