如何去除 Flutter 上 showMenu 最顶部的边距?

问题描述 投票:0回答:1

我正在尝试在

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 上写作。如果我的帖子不符合规则,我很抱歉。

flutter dart padding
1个回答
0
投票

您必须使用 menuPadding 属性删除 showMenu()padding,而不是它的子窗口小部件!

showMenu(
      context: context,
      position: position,

      menuPadding: EdgeInsets.zero // <--- this
      // ... other properties
)
© www.soinside.com 2019 - 2024. All rights reserved.