2013-12-17 2 views
1

상단에 메뉴 막대가 있고 하단에 BorderLayoutContainter이라는 간단한 페이지 예제를 만들려고합니다. 바닥 부분을 남은 크기에 자동으로 맞추는 방법을 알 수는 없습니다. - BorderLayoutContainer - 완전히 찌그러입니다GXT의 NorthSouthContainer 레이아웃 크기 조정

public void onModuleLoad() { 
    MenuBar mbar = new MenuBar(); 
    // Add menus... 

    BorderLayoutContainer blc = new BorderLayoutContainer(); 
    // Create borderlayout parts... 

    NorthSouthContainer mainCon = new NorthSouthContainer(); 
    mainCon.addNorthWidget(mbar); 
    mainCon.addSouthWidget(blc); 

    ViewPort vp = new ViewPort(); 
    vp.add(mainCon); 
    RootPanel.get().add(vp); 
} 

메뉴 바 표시 적절하지만, 하단 :

나는 이런 식으로 뭔가가있다. BorderLayoutContainerViewPort에 추가하면 올바르게 표시됩니다 (예 : 전체 화면 채우기).

크기가 NorthSouthContainer의 남쪽 부분에서 BorderLayoutContainer으로 전달되지 않는 이유는 무엇입니까? 아니면 다른 일이 있습니까?

+0

사용하는 GXT의 버전 여기 VerticalLayoutData에 더보고 추적 조사로 VerticalLayoutContainer를 사용하여 시도 할 수 있습니다? –

+0

GXT 3.0을 사용하고 있습니다. – siki

답변

0

몇 주 전에 같은 문제가있었습니다. 위젯의 CSS가 정확하게 ensureInjected()이 아닌 GXT의 버그 인 것 같습니다. 아시다시피, 북쪽 및 남쪽 위젯은 부모 컨테이너에서 높이 특성을 가져옵니다. 당신과 같이 내부 위젯 스타일 속성을 전달하여이 오류를 피할 수 :

mbar.getElement().getStyle().setProperty("height", "50%"); 
blc.getElement().getStyle().setProperty("height", "50%"); 

은 물론 나는 이것이 정말 깨끗한 해결책이 아니다 알고 있지만 그것은 가능성이다. 솔루션에 완전히 액세스하려면 BorderLayoutContainer에 자신 만의 모양을 구현해야합니다. Phew ...

0

나는 동일한 문제점이 있었다. 임시 해결책으로, 다른 위젯을 다른 뷰포트 인스턴스로 감싸는 경우 (GXT 3.1.1 사용) 나에게 적합합니다.

0

그것의 공식 버그. 당신은

VerticalLayoutContainer vlc = new VerticalLayoutContainer(); 
vlc.add(mBar,new VerticalLayoutData(1,-1)); 
vlc.add(blc,new VerticalLayoutData(1,1)); 

관련 문제