在多个下拉菜单中,如果已在 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