简体   繁体   English

在多个下拉菜单中,如果已在 Flutter 中选择,如何禁用选项?

[英]In multiple dropdown menu, how to disable an option if already selected in Flutter?

I have 4 different dropdown fields with 5 options and I want to disable/remove an option from other fields if the option is already selected.我有 4 个不同的下拉字段和 5 个选项,如果已选择该选项,我想从其他字段中禁用/删除该选项。

Screenshot: Screenshot 1 Screenshot 2截图:截图 1截图 2

DropDown Menu Code:下拉菜单代码:

 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(), ),

To manage it you need to remove the selected emoji from List<String> emoji .要管理它,您需要从List<String> emoji中删除选定的表情符号。

onChanged: (newValue) {
    setState(() {
        emoji.removeWhere((element) => element == newValue); /// This removed selected emoji.
        opemo1 = newValue;
        pollDataController.setop1Emoji(newValue);
    });
},

You can replace your onChanged with this snippet.您可以使用此代码段替换您的onChanged

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM