如何在 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(),
)
希望这就是您要找的。
我想制作 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(),
)
希望这就是您要找的。