2008-09-17 6 views
18

GWT의 패널에서 실제로 크기를 설정하지 않고도 페이지를 채우기를 원합니다. 이것을 할 수있는 방법이 있습니까? 현재 다음과 같은 내용이 있습니다.GWT에 유체 패널을 작성하여 페이지를 채우시겠습니까?

public class Main implements EntryPoint 
{ 
    public void onModuleLoad() 
    { 
     HorizontalSplitPanel split = new HorizontalSplitPanel(); 
     //split.setSize("250px", "500px"); 
     split.setSplitPosition("30%"); 

     DecoratorPanel dp = new DecoratorPanel(); 
     dp.setWidget(split); 

     RootPanel.get().add(dp); 
    } 

} 

위의 코드 조각으로는 아무 것도 나타나지 않습니다. 내가 누락 된 메서드 호출이 있습니까?

감사합니다.


이 20시 15분

에서 UPDATE 9월 17일 '08 좀 버튼을 넣어 양쪽에 (명시 적으로 크기를 설정)하고 여전히 작동하지 않습니다. 필자는 FillLayout 클래스 나 setFillLayout 메서드 또는 setDockStyle (DockStyle.Fill) 또는 그와 비슷한 것이 없다는 것에 정말 놀랐습니다. 어쩌면 가능하지 않을까요? 그러나 GWT만큼 대중적이라면 가능할 것이라고 생각합니다.

내가 100 %로 인 RootPanel의 폭과 높이를 설정 시도하고 여전히 작동하지 않았다 14시 38분

에서 UPDATE 9월 18일 '08. 그래도 제안을 주셔서 감사합니다. 아마 작동 할 것 같았습니다. 다른 제안?

답변

19

: http://code.google.com/webtoolkit/doc/1.6/FAQ_UI.html#How_do_I_create_an_app_that_fills_the_page_vertically_when_the_b

주요 포인트는이 같은 일을 수행해야합니다, 당신은 100 %로 높이를 설정 할 수 없다는 것입니다 :

final VerticalPanel vp = new VerticalPanel(); 
vp.add(mainPanel); 
vp.setWidth("100%"); 
vp.setHeight(Window.getClientHeight() + "px"); 
Window.addResizeHandler(new ResizeHandler() { 

    public void onResize(ResizeEvent event) { 
    int height = event.getHeight(); 
    vp.setHeight(height + "px"); 
    } 
}); 
RootPanel.get().add(vp); 
+2

이것은 훌륭한 대답이지만, GWT에 내장 된 기능이 있습니다. 몇 가지 링크에 대한 내 대답을 참조하십시오. – Brad

0

split (split.setLeftWidget (widget), split.setRightWidget (widget) 또는 split.add (widget)의 왼쪽 및/또는 오른쪽에 뭔가를 넣어야한다고 생각합니다. 왼쪽, 그 다음 오른쪽)을 표시합니다.

0

위젯을 추가하기 전에 루트 패널의 너비 및/또는 높이를 100 %로 설정해보십시오.

0

패널은 자동으로 가장 작은 보이는 너비로 크기가 조정됩니다. 따라서 SplitPanel을 포함하여 RootPanel에 추가하는 모든 패널의 크기를 100 %로 조정해야합니다. RootPanel 자체는 크기를 조정할 필요가 없습니다. 그래서 시도 :

split.setWidth("100%"); 
split.setHeight("100%"); 
+0

Drejc, 감사합니다. SplitPanel 차원과 RootPanel 차원을 모두 100 %로 설정하려고했습니다. 아직도 운이 없다. 다시 한번 감사드립니다. –

+0

패널 테두리가 보이도록 CSS 스타일을 설정하십시오. 그러면 어떤 패널의 크기를 조정해야하는지 알 수 있습니다. 이것은 필자가 패널에서 어찌할지를 잃었을 때 내가 선호하는 문제 해결 방법이며 어느 것이 어느 것에 책임이 있는지 알지 못합니다. – Drejc

0

DecoratorPanel에 대한 문서는 말한다 : 당신이 DecoratorPanel의 너비 또는 높이를 설정 한 경우

, 당신은 그래서 100 %로 middleCenter 셀의 높이와 너비를 설정해야 middleCenter 셀은 사용 가능한 모든 공간을 차지합니다. DecoratorPanel의 너비와 높이를 설정하지 않으면 내용이 단단히 감싸집니다.

0

기본적으로 DecoratorPanel middleCenter 셀은 내용을 기본으로 채울 것이며 SplitPanel은 "100 %"스타일 크기 설정을 허용하지 않습니다. 원하는대로 CSS의 표 스타일을 적절하게 설정하려면

.gwt-DecoratorPanel.middleCenter { 신장 : 100 %; 너비 : 100 %; }

구글들이 자주 묻는 질문 중 하나에 질문의 주요 부분에 응답 한
13

벤의 답변은 매우 좋지만 구식이기도합니다. GWT 1.6에서는 크기 조정 처리기가 필요했지만 지금은 2.4입니다. 을 사용하면 콘텐츠를 페이지에 세로로 채울 수 있습니다. 이 패널을 사용하는 sample mail app을 참조하십시오. 나를 위해

+2

의 소스는 다음과 같습니다. http://code.google.com/p/google-web-toolkit/source/browse/trunk/samples/mail/src/com/google/gwt/sample/mail/client/Mail.java –

0

난 그냥

panel.setWidth ("100 %")와 같은 폭을 설정하면 작동하지 않습니다

이 패널은 어디에서 왔는지 모르는 무작위 크기의 VerticalPanel입니다. 내가 라인에 추가 한 후 그러나 @ 벤 Bederson 나를 위해 매우 잘 작동 주석 부분 무엇을 :

panel.setWidth (Window.getClientWidth() + "PX를");

그냥 다른 것. 감사합니다