我正在开发一个GWT
mobile
应用程序GWT 2.4
。我希望我DialogBox
总是在用户viewport
缩放或正常视图的中心看到。在普通视图上,center()
可以处理它,但是当页面缩放时,DialogBox
整个浏览器窗口的中心会弹出,其中包括页面的滚动部分,而不是用户视口的中心。这个怎么做?请帮忙。提前致谢。
问问题
375 次
2 回答
0
我必须implements ResizeHandler
在我的窗口及其构造函数上添加ResizeEvent
处理程序 > Window.addResizeHandler(this);
。因为我正在实现ResizeHandler
接口,所以我需要覆盖以下内容:
@Override
public void onResize(ResizeEvent event) {
if (isShowing() ) { //check if popup is showing
int left = (Window.getClientWidth() * 0.5 - (widthOfMyWindow * 0.5) );
int top = (Window.getClientHeight() * 0.5 - (heightOfMyWindow * 0.5) );
setPopupPosition( left < 10 ? 10 : left, top < 0 ? 0 : top );
}
}
于 2013-07-16T02:23:05.910 回答
0
您需要将处理程序附加到捕获缩放事件的窗口。在此处理程序中,您调用
myDialogBox.setPopupPosition((Window.getClientWidth() - myDialogBox.getOffsetWidth())/2, (Window.getClientHeight() - myDialogBox.getOffsetHeight())/2);
}
如果您想以不同的方式对待它们,您可能需要添加检查对话框大于浏览器窗口的情况。
于 2012-10-02T15:29:18.513 回答