【问题标题】:In GWT, how to resize menu items so they stay confined to the menu bar在 GWT 中,如何调整菜单项的大小以使其仅限于菜单栏
【发布时间】:2013-07-25 19:57:18
【问题描述】:

在 GWT 中,如何防止 MenuItems 溢出具有预设像素宽度的 MenuBar 的边界?

我尝试使用 MenuItem 对象本身及其关联的 Style 对象上的 setWidth 方法更改项目的宽度,但都没有改变。

我还尝试在 MenuItem 添加到 MenuBar 之前和之后对其进行更改。

【问题讨论】:

    标签: gwt menuitem menubar


    【解决方案1】:

    MenuBar private void openPopup(final MenuItem item) {...} 创建一个DecoratedPopupPanel。 popupPanel 有一个回调popup.setPopupPositionAndShow(new PopupPanel.PositionCallback() {...}。那是计算弹出位置的地方,如果您可以覆盖此回调,您可以添加您的逻辑来测试它是否溢出并设置正确的位置。问题是该方法是私有的,对于一个快速(而且不那么干净)的解决方案,我会将整个类复制到另一个 .java 文件并使用它作为新 MenuBar 的基础。

    【讨论】:

    • 谢谢安德烈 -- 我想没有办法使用给定的 API 将项目限制为预设的 MenuBar 大小?
    • 我已经阅读了 MenuBar 代码,PositionCallback 只是相对于父级添加自身并且没有条件,除非它是垂直或水平的 MenuBar。卷起袖子,祝你好运:)
    • 看源码,openPopup方法好像是用来显示附在MenuItem参数上的子菜单。在我的代码中,我有一个水平菜单,项目本身就是溢出的——这是相关的还是需要其他方法?
    • 可以附上图片吗?
    • 我没有足够高的声誉来发布图片,但基本上菜单栏包含在弹出面板中,添加太多项目会导致面板溢出。我想保持面板大小相同,只是缩小项目以适应预设宽度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 2022-10-15
    • 2023-01-12
    相关资源
    最近更新 更多