J'essaie d'afficher le contenu de mes valeurs HashMap
dans un ListView.builder
widget. Y a-t-il un moyen de faire cela? Avec un List
je pourrais simplement utiliser l'index, mais comment cela fonctionnerait-il avec un HashMap
sans en faire un List
? Les clés de la carte sont des chaînes et les valeurs sont des cartes avec les données à afficher.
Faites simplement une liste à partir des clés, puis obtenez la valeur en utilisant l'index pour obtenir la clé de la carte et utilisez-la pour obtenir la valeur de la carte
var keys = myMap.keys.toList();
var val = myMap[keys[idx]]
c'est possible, vous pouvez faire quelque chose comme ça
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);
});
});
ou vous pouvez essayer
final list = map.values.toList(growable: {true/false});
// play with your list
C'est un peu tard mais vous pouvez aussi essayer ça. Valeurs de la carte = 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,
),
],
);
},
);
pour un exemple plus détaillé, vérifiez ceci https://kodestat.gitbook.io/flutter/39-flutter-listviewbuilder-using-Dart-maps