gpt4 book ai didi

flutter - PopupMenuButton 菜单总是与屏幕一侧有间隙

转载 作者:行者123 更新时间:2023-12-03 20:01:59 27 4
gpt4 key购买 nike

我要定位PopupMenuButton的菜单到我的应用程序的侧面,但它总是与侧面留下大约 10 个逻辑像素的间隙:
enter image description here
我已经尝试给 offset属性为负 dx值,但这似乎没有任何作用。据我所知 PopupMenuButton 上没有其他属性改变菜单的位置。
菜单如何准确定位在侧面?我在这里遗漏了一些明显的东西吗?
顺便说一句:PopupMenuButton位于AppBarScaffold .
这是我的 PopupMenuButton 的代码:

PopupMenuButton(
color: cardBackground,
elevation: 0.0,
shape: RoundedRectangleBorder(
side: BorderSide(
width: 0.5,
color: cardText,
)),
padding: EdgeInsets.all(0.0),
offset: Offset(-10.0, kToolbarHeight),
onSelected: (value) => doPaletteAction(value),
itemBuilder: (BuildContext context) => createPopUpItems(),
icon: Icon(
Icons.format_list_bulleted_rounded,
color: appBarIconButtons,
)
)

最佳答案

Material 弹出菜单边距为 hardcoded : PopupMenuButton > PopupMenuButtonState > showMenu > _PopupMenuRoute > _PopupMenuRouteLayout > _kMenuScreenPadding = 8.0
你能做的是

  • 玩转:
  • 打开本地 popup_menu.dart 源文件(在 IDE 中按住 Ctrl 键单击 PopupMenuButton)
  • 将 8.0 替换为 0.0,进行热重载,观察变化
  • 请记住回滚源以保持一致的行为
  • 进行可靠的修复:
  • 将文件复制到您的项目中,进行修复
  • 同时删除相对导入并添加 import 'package:flutter/material.dart';
  • 然后使用固定的“叉”而不是原始的:

  • import 'package:myapp/popup_menu.dart' as my_popup_menu;

    Scaffold(
    appBar: AppBar(
    elevation: 0,
    leading: my_popup_menu.PopupMenuButton(
    elevation: 0,
    shape: Border.all(width: 0.5),
    offset: Offset(0, kToolbarHeight),
    itemBuilder: (context) => [
    my_popup_menu.PopupMenuItem(
    child: Text('PopupMenuItem'),
    ),
    ],
    ),
    ),
    )

    关于flutter - PopupMenuButton 菜单总是与屏幕一侧有间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65782630/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com