Flutter listview with Map instead of List

前端 未结 4 1681
既然无缘
既然无缘 2020-12-28 15:21

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

相关标签:
4条回答
  • 2020-12-28 15:31

    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]]
    
    0 讨论(0)
  • 2020-12-28 15:35

    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
    
    0 讨论(0)
  • 2020-12-28 15:42

    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

    0 讨论(0)
  • 2020-12-28 15:45

    Just use inside the listview builder yourlistname[index ]['keyname' ], that works for me.

    0 讨论(0)
提交回复
热议问题