DropDownMenu 中的 Flutter 值
Flutter values in DropDownMenu
我想知道如果您在 Flutter 中使用 DropDownMenu 是否有可能获得不同的值。
例如:
你有项目 ['item1','item2','item3','item4','item5']
然后您对这些项目使用 DropDownButton。但是对于每个项目都应该传递一个不同的值,这样我可以稍后使用它。
因此 item1 = 90,item2 = 180,item3 = 270 等等。
如果选择了 item1,它应该像那样显示给用户,并且应用程序获得值 90,例如它可以在以后使用的地方。
我希望你能明白我的意思,并能帮我一点忙。
您可以创建地图并使用它的键 DropDownMenu
,显示时使用 key
显示值,如
String? dropdownValue;
Map<String, int> dataset = {
"item1": 90,
"item2": 180,
"item3": 270,
};
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
children: [
DropdownButtonHideUnderline(
child: DropdownButton<String>(
value: dropdownValue,
focusColor: Colors.white,
items: dataset.keys.map((String value) {
return DropdownMenuItem(
value: value,
child: Text(value),
);
}).toList(),
onChanged: (v) {
setState(() {
dropdownValue = v;
});
},
),
),
Text(
dropdownValue == null
? "Select Item "
: dataset[dropdownValue!].toString(),
),
有很多方法可以做到这一点。
1-通过键值对。
获取示例,例如:
items[{'name':'item1','value':'90'},{'name':'item2','value':'180'},{'name':'item3','value':'270'},{'name':'item4','value':'360'}];
(大概他们是 360 度天使 :-))
然后你可以这样指向每个项目:items[i]['name']
或 items[j]['value']
等等...
2- 不是首选方式:两个不同的列表如下:
itemNames[items1,item2,item3, item4];
itemValues [90,180,270,360];
然后您可以将 itemNames 列表传递给您的 dropdownMenu,只要选择了一个项目,您就可以找到它的索引并指向 itemsValues 的相应行。例如:dropdownMenu item3 selected 所以返回的索引应该是 2(索引从 0 开始)所以你可以这样找到所需的值:desiredValue = itemsValue[2];
(270)
我想知道如果您在 Flutter 中使用 DropDownMenu 是否有可能获得不同的值。
例如: 你有项目 ['item1','item2','item3','item4','item5'] 然后您对这些项目使用 DropDownButton。但是对于每个项目都应该传递一个不同的值,这样我可以稍后使用它。
因此 item1 = 90,item2 = 180,item3 = 270 等等。 如果选择了 item1,它应该像那样显示给用户,并且应用程序获得值 90,例如它可以在以后使用的地方。
我希望你能明白我的意思,并能帮我一点忙。
您可以创建地图并使用它的键 DropDownMenu
,显示时使用 key
显示值,如
String? dropdownValue;
Map<String, int> dataset = {
"item1": 90,
"item2": 180,
"item3": 270,
};
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
children: [
DropdownButtonHideUnderline(
child: DropdownButton<String>(
value: dropdownValue,
focusColor: Colors.white,
items: dataset.keys.map((String value) {
return DropdownMenuItem(
value: value,
child: Text(value),
);
}).toList(),
onChanged: (v) {
setState(() {
dropdownValue = v;
});
},
),
),
Text(
dropdownValue == null
? "Select Item "
: dataset[dropdownValue!].toString(),
),
有很多方法可以做到这一点。
1-通过键值对。
获取示例,例如:
items[{'name':'item1','value':'90'},{'name':'item2','value':'180'},{'name':'item3','value':'270'},{'name':'item4','value':'360'}];
(大概他们是 360 度天使 :-))
然后你可以这样指向每个项目:items[i]['name']
或 items[j]['value']
等等...
2- 不是首选方式:两个不同的列表如下:
itemNames[items1,item2,item3, item4];
itemValues [90,180,270,360];
然后您可以将 itemNames 列表传递给您的 dropdownMenu,只要选择了一个项目,您就可以找到它的索引并指向 itemsValues 的相应行。例如:dropdownMenu item3 selected 所以返回的索引应该是 2(索引从 0 开始)所以你可以这样找到所需的值:desiredValue = itemsValue[2];
(270)