我正在尝试在
showMenu
上制作一个顶栏。我尝试将我的 PopupMenuItem
上的第一个 showMenu
设置为看起来像一个。我尝试更改该单个项目的颜色,却发现周围有一些填充,在我的顶栏周围留下了白色区域。
所以我尝试了
EdgeInsets.zero
,除了顶部的填充之外,所有填充都消失了。我找不到(或谷歌/chatGPT 答案)如何删除这个填充。其实我也不明白这个padding是从哪里来的。
这是我当前代码的一部分以及运行它时的样子。
showMenu(
context: context,
position: position,
items: [
PopupMenuItem(
padding: EdgeInsets.zero, // remove paddings
child: Container(
decoration: BoxDecoration(
color: Colors.blueGrey, // Topbar color
borderRadius:
BorderRadius.vertical(top: Radius.circular(8)), // Topbar edge
),
child: Padding(
padding: const EdgeInsets.all(12), // Inner paddings for design
child: Row(
children: [
Expanded(
flex: 4,
child: Text(
weekdayDate + ' Schedule',
style: TextStyle(color: Colors.white),
),
),
Expanded(
flex: 1,
child: IconButton(
icon: Icon(Icons.add_outlined, color: Colors.white),
onPressed: () {
//
},
),
),
],
),
),
),
),
(他们不让我直接发布图片,因为我没有“10 声誉”。) 红框是我甩不掉的padding。
我知道我可能必须制作一个自定义小部件,但我以前从未这样做过,所以我对此感到不太舒服。
英语是我的第二语言,这是我第一次在 stackoverflow 上写作。如果我的帖子不符合规则,我很抱歉。
您必须使用 menuPadding 属性删除 showMenu() 的 padding,而不是它的子窗口小部件!
showMenu(
context: context,
position: position,
menuPadding: EdgeInsets.zero // <--- this
// ... other properties
)