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

11 dart flutter

如何从 中删除这 16 dp 的填充PopupMenuItem在此处输入图片说明

这是我的清单 PopupMenuItem

PopupMenuItem(
  child: Text("Hello"),
  value: 0,
),
PopupMenuItem(
  child: Text("Remove padding"),
  value: 1,
),
Run Code Online (Sandbox Code Playgroud)

小智 6

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

return InkWell(
      onTap: widget.enabled ? handleTap : null,
      child: Container(
        height: widget.height,
        padding: const EdgeInsets.symmetric(horizontal: _kMenuHorizontalPadding), // setting this to 0 worked 
        child: item,
      ),
    );
Run Code Online (Sandbox Code Playgroud)

PS:希望有人能给出更好的答案。我会很高兴接受它。谢谢 :)

  • 在文件 popup_menu.dart 中有硬编码常量。`_kMenuHorizo​​ntalPadding` 设置水平填充,`_kBaselineOffsetFromBottom` 和 `_kMenuVerticalPadding` 设置垂直填充。所以你不能改变这个填充。您只有两种方法 - 按照您编写的方式编辑此文件,或者将此文件中的源代码复制到您的项目并根据需要对其进行自定义 (2认同)