1

私はでGWT mobileアプリケーションを開発していますGWT 2.4。ズームまたは通常のビューDialogBoxで、常にユーザーの中央に表示されるようにしたいと思います。viewport通常のビューでcenter()は処理できますが、ページがズームするDialogBoxと、ユーザーのビューポートの中央ではなく、ページのスクロール部分を含むブラウザウィンドウ全体の中央にポップが表示されます。これを行う方法?助けてください。前もって感謝します。

4

2 に答える 2

0

ズームイベントをキャッチするハンドラーをウィンドウにアタッチする必要があります。このハンドラーでは、

myDialogBox.setPopupPosition((Window.getClientWidth() - myDialogBox.getOffsetWidth())/2, (Window.getClientHeight() - myDialogBox.getOffsetHeight())/2);
}

別の方法で処理したい場合は、ダイアログがブラウザウィンドウよりも大きい場合の状況のチェックを追加する必要がある場合があります。

于 2012-10-02T15:29:18.513 に答える
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 に答える