0

我正在使用PopupPanel;为某些元素创建上下文菜单 菜单本身将相当大且复杂。我想要做的是有一个按钮列表,加上一个图像和一些文本,与单击的元素相关。

我的问题是我希望按钮始终直接显示在单击的元素下方,因为这对用户来说很方便;问题是当PopupPanel靠近屏幕边缘时,它会自动将位置更改为完全可见,而不是像往常一样将其左侧与元素对齐。我喜欢这种行为,但它会将按钮的位置移开。

所以我想要发生的是:通常按钮在面板的左侧,其他的东西在右侧。当面板靠近屏幕右侧时,我希望按钮位于右侧(因此位于单击的元素下方)而其他内容位于左侧。

有没有一种聪明的方法来做到这一点,无论是在 GWT 中还是更好,只使用 CSS?PopupPanel可悲的是,它本身似乎并没有告诉你它什么时候会被翻转。我目前唯一的解决方案是在显示之前手动检查弹出窗口的位置和宽度并进行相应调整,但我希望有更好的解决方案。

4

1 回答 1

0

这是我的建议(基于我自己对类似用例的实现):

  • 让位置回调实现在以下位置接受引用(在构造函数中):
    • PopupPanel 元素
    • 用户右键点击的元素
    • 您放入 PopupPanel 的内容
  • 复制(我知道这不是 DRY,但实现是包私有的)来自默认位置回调的代码
  • 向右打开时,调用一个更改内容布局的方法(基于 CSS 或其他)

我希望它有所帮助。如果你找到更好的东西,请告诉我。

于 2013-07-29T17:14:52.990 回答