2012-05-23 35 views
4

我的頁面上有一張帶有按鈕的表格。有太多的按鈕,我有一個滾動滾動我的桌子。GWT - DialogBox.center()無法正常工作

Button「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); 
+0

第一次居中時,在向下滾動(在瀏覽器上)時,希望對話框隨着滾動向下移動並保持居中? –

+0

不,我希望它總是出現在頁面的中間,儘管我按下了按鈕 -​​ 在桌子的頂部,中間或底部。 但是現在只有當我按下表格頂部的按鈕時,對話框纔出現在中心。我會附上這樣的廢話截圖,但我不知道如何。 – Dragon

+0

但在您的描述中,您說的是根據您的滾動位置將對話框移動到新的中心。這就是我問的原因。我使用了很多對話框,並且.center()工作正常。也許你應該嘗試不同的瀏覽器和不同的html標準設置...可能是瀏覽器問題。 –

回答

0

提到問題的根源似乎是很簡單的。 Chrome無法正確對中對話框。我檢查了FF,IE ......並且它按照計劃工作。