如何在 flutter 中使用自定义数据类型下拉列表按钮?

How to use custom data types dropdownlist buttons in flutter?

我想制作 drop-downlistbutton 但它的列表应该是 enum 的元素现在我尝试更改类型但它显示一个错误,现在我知道我可以用字符串来做,然后再用 if-else 来做,但显然会使代码变长,所以有什么方法可以将字符串更改为枚举的数据类型。

是的,您可以轻松做到这一点。指定你要使用的数据类型即可,这里我们使用DropdownButton<CustomType>

enum CustomType { TYPE1, TYPE2, TYPE3 }

DropdownButton<CustomType>(
  onChanged: (value) => print(value),
  items: [
    DropdownMenuItem(
      child: Text("TYPE 1"),
      value: CustomType.TYPE1,
    ),
    DropdownMenuItem(
      child: Text("TYPE 2"),
      value: CustomType.TYPE2,
    ),
    DropdownMenuItem(
      child: Text("TYPE 3"),
      value: CustomType.TYPE3,
    ),
  ],
)

遍历枚举值

DropdownButton<CustomType>(
  onChanged: (value) => print(value),
  items: CustomType.values
      .map((type) => DropdownMenuItem(
            child: Text(type.toString().split('.')[1]),
            value: type,
          ))
      .toList(),
)

希望这就是您要找的。