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,
);