1

我正在开发一个GWT mobile应用程序GWT 2.4。我希望我DialogBox总是在用户viewport缩放或正常视图的中心看到。在普通视图上,center()可以处理它,但是当页面缩放时,DialogBox整个浏览器窗口的中心会弹出,其中包括页面的滚动部分,而不是用户视口的中心。这个怎么做?请帮忙。提前致谢。

4

2 回答 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 回答