我想制作下拉列表按钮,但它的列表应该是枚举的元素,现在我试图更改类型,但它显示了一个错误,现在我知道我可以使用字符串,然后使用 if-else 来做,但显然会使代码那么有没有办法将字符串更改为枚举的数据类型。
问问题
439 次
1 回答
4
是的,您可以轻松做到这一点。只需指定要使用的数据类型,这里我们使用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(),
)
我希望这就是你要找的。
于 2020-05-29T15:42:18.557 回答