我的页面上有一张带按钮的桌子。按钮太多了,我有一个滚动器可以向下滚动表格。

按钮“ 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);

最佳答案

提到的问题的来源似乎很简单。 Chrome无法正确居中对话框。我检查了FF,IE ...并按计划工作。

07-28 12:19