在 GWT 中,如何调整菜单项的大小以使其仅限于菜单栏
Posted
技术标签:
【中文标题】在 GWT 中,如何调整菜单项的大小以使其仅限于菜单栏【英文标题】:In GWT, how to resize menu items so they stay confined to the menu bar 【发布时间】:2013-07-25 19:57:18 【问题描述】:在 GWT 中,如何防止 MenuItems 溢出具有预设像素宽度的 MenuBar 的边界?
我尝试使用 MenuItem 对象本身及其关联的 Style 对象上的 setWidth 方法更改项目的宽度,但都没有改变。
我还尝试在 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参数上的子菜单。在我的代码中,我有一个水平菜单,项目本身就是溢出的——这是相关的还是需要其他方法? 可以附上图片吗? 我没有足够高的声誉来发布图片,但基本上菜单栏包含在弹出面板中,添加太多项目会导致面板溢出。我想保持面板大小相同,只是缩小项目以适应预设宽度。以上是关于在 GWT 中,如何调整菜单项的大小以使其仅限于菜单栏的主要内容,如果未能解决你的问题,请参考以下文章