GWT - PopupPanel,翻转时改变布局

时间:2013-07-26 19:19:15

标签: css gwt popup

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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