2012-10-26 3 views
1

BorderLayoutContainer에서 사용 가능한 높이를 모두 가져 오지 못하는 ContentPanel을 가져올 수 없습니다.GXT 3 ContentPanel 자동 고침 또는 FillLayout

버전 2.x에서는 setLayout(new FillLayout());과 같이 간단했지만 GXT 3.0.x에서는 더 이상 유효하지 않습니다. 이 예에서 똑같은 코드가 내 프로젝트에 복사 할 때 Border layout demo하지만, 그것은 다음과 같습니다 :

내 문제를 명확하게하기 위해, 나는 여기가 볼 예정이다 방법, 여기 GXT 3 demo에서 예를 촬영했습니다 : same thing copied to my project

레이아웃이 손상된 것 같습니다. Chrome 22.0.x 및 Firefox 16.0.1에서도 같은 효과를냅니다. GWT 2.4 및 GXT 3.0.1을 사용합니다. 그것은 예를 덜 휴대용하게하기 때문에 내 HTML 페이지는

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

<link rel="stylesheet" type="text/css" href="modeluname/reset.css" />

답변

3

탐색기는 크기, 아마 실수를 할당되어 포함되어 있습니다. 크기는 부모 (데모와 소스가 모두있는 탭 패널)에서 할당되며, 부모 (기본 탭 패널)에서 가져옵니다. 이 문제를 해결하려면 크기를 설정해야합니다.

일반적으로 루트 위젯에서 크기를 설정하고 싶지는 않습니다. 브라우저에서 사용 가능한 공간에 항상 맞게 만들려고합니다. 즉, 모든 것을 뷰포트에 추가하려고합니다. http://www.sencha.com/examples/#ExamplePlace:borderlayout%28uibinder%29의는 onModuleLoad에서 소스에서 사용 :

public void onModuleLoad() { 
    Viewport viewport = new Viewport(); 
    viewport.setWidget(asWidget()); 
    RootPanel.get().add(viewport); 
} 

을 지금까지 FitLayout이가는대로, 실제로 필요하지 않습니다 - 단지 GXT 3. 주요 문제에 FitLayout을 본질적으로 이미 아이를 취이있는 용기가 2에서 생기는 것은 3에서와 동일하다 - 어떤 부모는 그 아이에게 크기를 전달하지 않는다 - 그리고 그들은 같은 방식으로 해결 될 필요가있다.

기본 fitlayout과 같은 동작을 선택 해제 할 수 있습니다. SimpleContainer (즉, ContentPanel, FramedPanel 등)에서 setResize (false)를 호출 할 수 있습니다. 일반적으로 기본값이 그대로 유지됩니다.

+0

이렇게하면 문제가 해결됩니다! 감사합니다. 콜린! – Andrew