在 DropDownButton 中使用动态列表 |扑

Use dynamic list in DropDownButton | Flutter

我的问题如下:

class Data {
  final String? image, title, link;
  final Color? color;

  Data({
    this.title,
    this.image,
    this.link,
    this.color,
  });
}


List dataList = [
  Data(
      title: "XXX",
      image: "XXX",
      link: "XXX",
      color: XXX),

...

我有这个 class 和列表来存储我的数据,但是我第一次使用这种方式来学习新东西。现在我遇到的问题是,由于我在其中的 Data(),我完全无法使用列表中的数据创建 DropDownButton。

我试过这样的事情:

@override
  Widget build(BuildContext context) {
    return Container(
      child: Center(
        child: DropdownButton<String>(
          items: dataList.map((Map map) {
              return new DropdownMenuItem<String>(
                value: map["title"].toString(),
                child: new Text(
                  map["name"],
                ),
              );
            }).toList(),
        ),
      ),
    );
  }
}

但我确信此选项不适用于我的示例。我认为现在有办法向您寻求帮助。所以我的确切问题是,如何创建一个 DropDownMenu/Button,其中所有数据 classes 的标题都显示在列表中。感谢您的帮助,谢谢。

您的列表是通用类型数据,但您将其视为地图。

@override
  Widget build(BuildContext context) {
    return Container(
      child: Center(
        child: DropdownButton<String>(
          items: dataList.map((data) {
              return DropdownMenuItem<String>(
                value: data.title.toString(),
                child: Text(
                  data.name,
                ),
              );
            }).toList(),
        ),
      ),
    );
  }
}

现在应该可以了。