如何在flutter中改变PopupMenuItem的背景颜色?
现在我只需要改变PopupMenuItem的子元素的颜色,结果是这样的:
下面是代码:
PopupMenuButton<int>(
onSelected: (value) {
// TODO: Implement onSelect
},
offset: Offset(50, 50),
itemBuilder: (context) => [
PopupMenuItem(
value: 1,
child: Container(
height: double.infinity,
width: double.infinity,
color: Colors.greenAccent, // i use this to change the bgColor color right now
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Icon(Icons.check),
SizedBox(width: 10.0),
Text("Konfirmasi Update"),
SizedBox(width: 10.0),
],
),
),
),
我想要的是改变“Konfirmasi更新”选项的背景颜色,正如你可以看到上面的图片颜色是离开选项外的白色区域。
如何完全改变PopupMenuItem的背景颜色,而不留下PopupMenuItem外部的白色区域?
5条答案
按热度按时间ftf50wuq1#
另一种方法是从PopupMenuItem继承。
若要仅使用,请更改CustomPopupMenuItem的PopupMenuButton并设置颜色。
igsr9ssn2#
没有办法开箱即用地使用
PopupMenuButton
和PopupMenuItem
小部件,因为如果检查源代码,就会发现垂直和水平填充有硬代码值。我修改了
popup_menu.dart
文件的代码,特别是这些值:如果要使其工作,请将此文件下载到项目中:https://gist.github.com/diegoveloper/995f1e03ef225edc64e06525dc024b01
在项目中导入文件并添加别名:
用途:
结果
monwx1rj3#
您可以将PopupMenuButton放在主题中,在您的主题中,您必须更新您想要的背景颜色的cardColor,如下所示:
pw9qyyiw4#
对于Flutter 3.7,我将@erli命题修改为这样的版本:
zc0qhyus5#
非常容易改变整个菜单的颜色或只是它的孩子。
使用正则颜色表达式。color:Colors.red或任何你喜欢的颜色。
您可以在
PopupMenuButton()
或PopupMenuItem()
中使用它。