3

私のページにボタンのあるテーブルがあります。ボタンがたくさんあるので、テーブルを下にスクロールするためのスクローラーがあります。

ボタン「onClick」は、スクロールパネル、コンテンツ、およびこのダイアログボックスを閉じるためのボタンを含むダイアログボックスを生成します。DialogBox.center()を使用して中央に配置します。たとえば、テーブルの最初のボタンを押すと、ダイアログボックスが厳密に中央に表示されます。しかし、ページを下にスクロールしてテーブルの下部にあるボタンを押すと、DialogBoxはまだ「古い」状態で表示されます。中央...私の視界のほぼ上。スクロールバーの位置に応じて下に移動しません。setPopupPosition()、setPopupPositionAndShow()などを変更しようとしましたが、役に立ちませんでした。

何が悪いのか考えはありますか?これが私のダイアログボックスのコードです:

public class MyDialogBox extends DialogBox {

    public MyDialogBox(final String caption, final String text) {
        setText("Caption: " + caption);

        VerticalPanel inner = new VerticalPanel();
        Label msg = new Label(text);

        Button ok = new Button("Close");
        ok.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                    MessageTextBox.this.hide();
                }
        });

        inner.add(msg);
        ScrollPanel scrollbar = new ScrollPanel(inner);
        scrollbar.setSize("640", "480");
        VerticalPanel outer = new VerticalPanel();
        outer.add(scrollbar);
        outer.add(ok);
        setWidget(outer);
    }
}

そして、これが私のボタンがそれを呼び出す方法です:

VerticalPanel mainPanel ... //MainPanel with a lot different elements, it contains panel with buttons
VerticalPanel panel ... //Panel with buttons
panel.setViewButtonHandler(new ClickHandler() {
    public void onClick(ClickEvent event) {
        MyDialogBox dialogBox = new MyDialogBox("Caption", "Some text");
        dialogBox.center();
        dialogBox.show();
     }
});
mainPanel.add(panel);
4

1 に答える 1

0

言及された問題の原因は非常に単純であるように見えました。Chromeはダイアログボックスを正しく中央に配置しません。FF、IEで確認しましたが…予定通りに動作します。

于 2012-05-24T09:08:22.797 に答える