2012-05-23 4 views
4

내 페이지에 버튼이있는 테이블이 있습니다. 버튼이 너무 많아서 테이블을 스크롤하는 스크롤러가 있습니다.GWT - DialogBox.center()가 올바르게 작동하지 않습니다.

버튼 "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는 ... 그리고 그것이 계획대로 작동합니다.

관련 문제