2012-10-02 95 views
1

我正在開發一個GWTmobile應用程序GWT 2.4。我希望我的DialogBox在放大或正常視圖中始終位於用戶的viewport的中心。在普通視圖中,center()可以處理它,但是當頁面變焦時,DialogBox會在整個瀏覽器窗口的中心彈出,其中包括頁面的滾動部分不在用戶視口的中心。這個怎麼做?請幫忙。提前致謝。GWT中心對話框放大

回答

0

您需要將一個處理程序附加到捕獲縮放事件的窗口。在此處理程序,你叫

myDialogBox.setPopupPosition((Window.getClientWidth() - myDialogBox.getOffsetWidth())/2, (Window.getClientHeight() - myDialogBox.getOffsetHeight())/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); 
    } 
}