I'm trying to display the contents of my HashMap
values in a ListView.builder
widget. Is there a way to do this? With a List
I could simply use the index, but how would that work with a HashMap
without making a List
out of it?
The keys of the map are strings and the values are maps with the data to display.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Its a little late but You could also try this. Map values = snapshot.data;
return new ListView.builder(
itemCount: values.length,
itemBuilder: (BuildContext context, int index) {
String key = values.keys.elementAt(index);
return new Column(
children: <Widget>[
new ListTile(
title: new Text("$key"),
subtitle: new Text("${values[key]}"),
),
new Divider(
height: 2.0,
),
],
);
},
);
for a more detailed example check this out https://kodestat.gitbook.io/flutter/39-flutter-listviewbuilder-using-dart-maps
回答2:
Just make a list from the keys and then get the value using the index to get the map key and use it to get the map value
var keys = myMap.keys.toList();
var val = myMap[keys[idx]]
回答3:
it is possible, you can do something like this
map.forEach((key, value) {
// here you can write your logic using "Value object",
// make new object of your list view item and
// add it to it's builder list using
setState(() {
_builderList.insert(0, itemObject);
});
});
or you can try
final list = map.values.toList(growable: {true/false});
// play with your list