在多个下拉菜单中,如果已在 Flutter 中选中,如何禁用选项?
In multiple dropdown menu, how to disable an option if already selected in Flutter?
我有 4 个不同的下拉字段和 5 个选项,我想 disable/remove 如果已经选择了其他字段的选项。
截图:
Screenshot 1
Screenshot 2
下拉菜单代码:
String opemo1, opemo2, opemo3, opemo4;
List<String> emoji = [
"❤️",
"",
"✌️",
"",
"",
];
DropdownButtonFormField(
validator: (value) =>
value == null ? 'required' : null,
hint: Text('❤️'),
value: opemo1,
icon: Icon(Icons.arrow_drop_down),
iconSize: 36,
isExpanded: true,
style: TextType.regularDarkText,
onChanged: (newValue) {
setState(() {
opemo1 = newValue;
pollDataController.setop1Emoji(newValue);
});
},
items: emoji.map((opemo1) {
return DropdownMenuItem(
value: opemo1,
child: Text(opemo1),
);
}).toList(),
),
要管理它,您需要从 List<String> emoji
中删除所选的表情符号。
onChanged: (newValue) {
setState(() {
emoji.removeWhere((element) => element == newValue); /// This removed selected emoji.
opemo1 = newValue;
pollDataController.setop1Emoji(newValue);
});
},
您可以用此代码段替换您的 onChanged
。
我有 4 个不同的下拉字段和 5 个选项,我想 disable/remove 如果已经选择了其他字段的选项。
截图: Screenshot 1 Screenshot 2
下拉菜单代码:
String opemo1, opemo2, opemo3, opemo4; List<String> emoji = [ "❤️", "", "✌️", "", "", ];
DropdownButtonFormField( validator: (value) => value == null ? 'required' : null, hint: Text('❤️'), value: opemo1, icon: Icon(Icons.arrow_drop_down), iconSize: 36, isExpanded: true, style: TextType.regularDarkText, onChanged: (newValue) { setState(() { opemo1 = newValue; pollDataController.setop1Emoji(newValue); }); }, items: emoji.map((opemo1) { return DropdownMenuItem( value: opemo1, child: Text(opemo1), ); }).toList(), ),
要管理它,您需要从 List<String> emoji
中删除所选的表情符号。
onChanged: (newValue) {
setState(() {
emoji.removeWhere((element) => element == newValue); /// This removed selected emoji.
opemo1 = newValue;
pollDataController.setop1Emoji(newValue);
});
},
您可以用此代码段替换您的 onChanged
。