首页 文章

使用 Map 而不是 List 来查看列表视图

提问于
浏览
3

我正在尝试在ListView.builder小部件中显示我的HashMap值的内容。有没有办法做到这一点?使用List我可以简单地使用索引,但如果没有List,它如何使用HashMap?地图的键是字符串,值是与要显示的数据的地图。

3 回答

  • 8

    只需从键中创建一个列表,然后使用索引获取值以获取地图键并使用它来获取地图值

    var keys = myMap.keys.toList();
    var val = myMap[keys[idx]]
    
  • 7

    有可能,你可以做这样的事情

    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);
           });
    
       });
    

    或者你可以试试

    final list = map.values.toList(growable: {true/false});
    // play with your list
    
  • 2

    它有点晚了但你也可以试试这个。地图值= 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,
            ),
          ],
        );
      },
    );
    

    有关更详细的示例,请查看https://kodestat.gitbook.io/flutter/39-flutter-listviewbuilder-using-dart-maps

相关问题