我正在用GWT 2.4开发一个GWT mobile应用程序。我希望我的DialogBox在缩放或正常视图时始终显示在用户viewport的中心。在普通视图中,center()可以处理它,但当页面缩放时,DialogBox会弹出到整个浏览器窗口的中心,其中包括页面的滚动部分,而不是用户视窗的中心。该怎么做呢?请帮帮忙。提前谢谢。
发布于 2012-10-02 23:29:19
您需要向窗口附加一个捕捉缩放事件的处理程序。在此处理程序中,您可以调用
myDialogBox.setPopupPosition((Window.getClientWidth() - myDialogBox.getOffsetWidth())/2, (Window.getClientHeight() - myDialogBox.getOffsetHeight())/2);
}如果您希望以不同的方式处理对话框大于浏览器窗口的情况,则可能需要添加检查。
发布于 2013-07-16 10:23:06
我必须在我的窗口和它的构造函数上添加implements ResizeHandler,我已经添加了ResizeEvent handler > 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 );
}
}https://stackoverflow.com/questions/12685658
复制相似问题