我正在使用GWT
开发mobile
GWT 2.4
个应用程序。我希望我的DialogBox
始终位于缩放或普通视图上用户viewport
的中心位置。在普通视图中,center()
可以处理它,但是当页面变焦时,DialogBox
会弹出整个浏览器窗口的中心,其中包括不在用户视口中心的页面滚动部分。这该怎么做?请帮忙。提前谢谢。
答案 0 :(得分:0)
您需要将一个处理程序附加到捕获缩放事件的窗口。在此处理程序中,您可以调用
myDialogBox.setPopupPosition((Window.getClientWidth() - myDialogBox.getOffsetWidth())/2, (Window.getClientHeight() - myDialogBox.getOffsetHeight())/2);
}
如果您希望以不同方式对待它们,则可能需要在对话框大于浏览器窗口时添加检查。
答案 1 :(得分: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 );
}
}