如何在 Flutter 中打开的 DropdownMenu 中更改所选项目的背景颜色?

How to Change the Selected Item Background Color in the Opened DropdownMenu in Flutter?

提问人:Jorpy 提问时间:11/8/2023 更新时间:11/8/2023 访问量:42

问:

如何在打开的DropdownMenu中更改所选项目的背景颜色?我想在打开的 DropdownMenu 中更改所选项目的背景颜色。

安卓 iOS Flutter 飞镖

评论


答:

0赞 Jorpy 11/8/2023 #1

我可以通过添加 MenuStyle 来更改颜色

DropdownMenu(
  menuStyle: MenuStyle(
    backgroundColor:  MaterialStateProperty.all( Colors.grey),
  ),
),
0赞 Ali Roodi 11/8/2023 #2

在 Flutter 中,您可以通过自定义项目并使用 或 自定义背景颜色来更改打开的项目中所选项目的背景颜色。这是你如何做到的:DropdownButtonDropdownMenuItem

  1. 创建 或 小部件列表并自定义其外观:DropdownMenuItem
     DropdownButton<String>(
         value: selectedValue,
         items: items.map((String item) {
             return DropdownMenuItem<String>(
                 value: item,
                 child: Container(
                     color: item == selectedValue ? Colors.blue : Colors.white, // Change the background color for the selected item
                     child: Text(item),
                 ),
             );
         }).toList(),
         onChanged: (String newValue) {
             setState(() {
                 selectedValue = newValue;
             });
         },
     )

在上面的代码中,容器的背景颜色是通过将当前项与所选值进行比较来确定的。如果匹配,则将背景色设置为蓝色(您可以将其更改为您喜欢的任何颜色),对于其他项目,它将背景色设置为白色。您可以根据自己的喜好自定义颜色。

  • 确保您有一个变量,并在回调中更新它以反映所选值。selectedValueonChanged