Dart 从PopupMenuItem(溢出菜单)中删除填充

Dart 从PopupMenuItem(溢出菜单)中删除填充,dart,flutter,Dart,Flutter,如何从PopupMenuItem中删除此16 dp的填充? 这是我的PopupMenuItem PopupMenuItem( child: Text("Hello"), value: 0, ), PopupMenuItem( child: Text("Remove padding"), value: 1, ), 您的PopupMenuItems应该在一个范围内。尝试将该值更改为您想要的值。我不喜欢它,但这是唯一适合我的解决方案。我必须编辑非项目文件(PopupMenuItem

如何从
PopupMenuItem
中删除此16 dp的填充?

这是我的
PopupMenuItem

PopupMenuItem(
  child: Text("Hello"),
  value: 0,
),
PopupMenuItem(
  child: Text("Remove padding"),
  value: 1,
),

您的PopupMenuItems应该在一个范围内。尝试将该值更改为您想要的值。

我不喜欢它,但这是唯一适合我的解决方案。我必须编辑非项目文件(
PopupMenuItem
class)

我希望有人能想出更好的答案。我很乐意接受。谢谢:)

在我的情况下,我不得不删除8的固定填充移动到我的所有组件的一边,这是不好的。为此,我创建了一个适用于我的案例的变通方法。当我在一排工作时,这对我来说已经足够了:

ConstrainedBox constrainedBoxPopup =  new ConstrainedBox(
      constraints: new BoxConstraints(
        maxHeight: 30.0,
        maxWidth: 30.0,
     ),
      child: popupMenuButton,
  );

正如您所看到的,我在约束框中强制设置了最大高度和宽度。事实上,填充现在对它没有任何影响。

对不起,但是
PopupMenuButton
padding
只为它自己,不为它的孩子。啊,我的错。我想您可以使用带有文本小部件的GestureDetector小部件创建自己的PopupMenuItem,因为您似乎无法更改PopupMenuItem的填充?请参阅我的答案。它很难看,但不需要像创建我自己的类和重写内容那样付出太多努力。在文件popup_menu.dart中有硬编码的常量
\u kMenuHorizontalPadding
设置水平填充、
\u KbaselineOffset from bottom
\u kMenuHorizontalPadding
设置垂直填充。所以你不能改变这个填充。您只有两种方法—要么在编写时编辑此文件,要么将源代码从此文件复制到项目中,并在编写时对其进行自定义need@AndreyTurkovsky是的,看来这就是路。您还知道如何更改
PopupMenuItem
的宽度吗?在颤振中使用extension可以进行此修改吗?
ConstrainedBox constrainedBoxPopup =  new ConstrainedBox(
      constraints: new BoxConstraints(
        maxHeight: 30.0,
        maxWidth: 30.0,
     ),
      child: popupMenuButton,
  );