我正在使用 PopupPanel
为某些元素创建上下文菜单;菜单本身将相当大且复杂。我想要做的是有一个按钮列表,加上一个图像和一些文本,与单击的元素相关。
我的问题是我希望按钮总是直接显示在被点击的元素下面,因为这对用户来说很方便;问题是当 PopupPanel
靠近屏幕边缘时,它会自动更改位置以完全可见,而不是像往常一样将其左侧与元素对齐。我喜欢这种行为,但它会将按钮的位置移开。
所以我希望发生的事情是:按钮通常在面板的左侧,其他东西在右侧。当面板靠近屏幕右侧时,我希望按钮位于右侧(因此位于单击的元素下方),而其他内容位于左侧。
是否有一种聪明的方法可以在 GWT 或更好的情况下仅使用 CSS 来做到这一点?遗憾的是,PopupPanel
本身似乎并没有告诉您它何时会翻转。我目前唯一的解决方案是在显示之前手动检查弹出窗口的位置和宽度并进行相应调整,但我希望有更好的解决方案。
最佳答案
这是我的建议(基于我自己对类似用例的实现):
- 让位置回调实现接受引用(在构造函数中):
- 弹出面板元素
- 用户有权点击的元素
- 您在 PopupPanel 中放入的内容
- 复制(我知道这不是 DRY 但实现是包私有(private)的)默认位置回调的代码
- 当向右打开时调用更改内容布局的方法(基于 CSS 或其他方式)
希望对你有所帮助。如果您发现更好的东西,请告诉我。
关于css - GWT - PopupPanel,翻转时更改布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17889294/