有什么想法我可以删除巨大的填充从一个抖动PopupmenuButton?像一个收缩 Package ,甚至是一个替代部件,可以使用?它破坏了我的元素对齐。我尝试将padding设置为0,但完全没有效果。
padding
padding: EdgeInsets.all(0)
58wvjzkj1#
提供child而不是icon将允许您使用具有任何所需大小/填充的自定义小部件。注意:Icons.more_vert自带填充,但任何自定义图标都可以避免这种情况。
child
icon
Icons.more_vert
PopupMenuButton( child: Container( height: 36, width: 48, alignment: Alignment.centerRight, child: Icon( Icons.more_vert, ), ), onSelected: (value) {}, itemBuilder: (context) => [], ),
2nc8po8w2#
如果你仔细观察填充不在PopupmenuButton中,那么填充是来自IconButton的。IconButton是一个材质设计部件,它遵循可点击对象每边至少为48px的规范。因此,最好创建自己的部件来减少填充。避免这种情况的简单解决方法是使用GestureDetector Package 的图标。您可以参考this post了解更多详细信息。
PopupmenuButton
IconButton
GestureDetector
8mmmxcuj3#
从PopopMenuButton类的Flutter文档中,padding → EdgeInsetsGeometrydefault匹配图标按钮的8 dps填充。在某些情况下,特别是当此按钮作为列表项的尾随元素出现时,将填充设置为零非常有用。您可以按照文档的建议将填充更改为0。在此处阅读更多信息-https://api.flutter.dev/flutter/material/PopupMenuButton-class.html
azpvetkf4#
已提供解决方案,但您必须编辑非项目文件(PopupMenuItem类)
return InkWell( onTap: widget.enabled ? handleTap : null, child: Container( height: widget.height, padding: const EdgeInsets.symmetric(horizontal: _kHorizontalMenuPadding), // setting this to 0 worked child: item, ), );
不是很推荐,但还能用
9udxz4iz5#
解决方案:使用SizedBox Package :
SizedBox( height:, child: Row( children: [ PopupMenuButton( ) ], ), )
inn6fuwd6#
要从PopUpMenu按钮中删除填充,请将其放入容器中并提供所需宽度。
Container( width:20, child: PopupMenuButton( // your Code is Here ), )
l0oc07j27#
您只需为子属性提供图标,如下所示
PopupMenuButton( child: Icon( Icons.more_vert, ), onSelected: (value) {}, itemBuilder: (context) => [], ),
7条答案
按热度按时间58wvjzkj1#
提供
child
而不是icon
将允许您使用具有任何所需大小/填充的自定义小部件。注意:
Icons.more_vert
自带填充,但任何自定义图标都可以避免这种情况。2nc8po8w2#
如果你仔细观察填充不在
PopupmenuButton
中,那么填充是来自IconButton
的。IconButton是一个材质设计部件,它遵循可点击对象每边至少为48px的规范。因此,最好创建自己的部件来减少填充。避免这种情况的简单解决方法是使用
GestureDetector
Package 的图标。您可以参考this post了解更多详细信息。
8mmmxcuj3#
从PopopMenuButton类的Flutter文档中,
padding → EdgeInsetsGeometrydefault匹配图标按钮的8 dps填充。在某些情况下,特别是当此按钮作为列表项的尾随元素出现时,将填充设置为零非常有用。
您可以按照文档的建议将填充更改为0。
在此处阅读更多信息-https://api.flutter.dev/flutter/material/PopupMenuButton-class.html
azpvetkf4#
已提供解决方案,但您必须编辑非项目文件(PopupMenuItem类)
不是很推荐,但还能用
9udxz4iz5#
解决方案:使用SizedBox Package :
inn6fuwd6#
要从PopUpMenu按钮中删除填充,请将其放入容器中并提供所需宽度。
l0oc07j27#
您只需为子属性提供图标,如下所示