문제

전체 브라우저 클라이언트 영역을 차지하는 Tabpanel을 만들고 싶습니다. 내부에는 필요한 경우 해당 스크롤을 Flextable에 넣고 싶습니다. 그러나 나는 이것을 성취하는 데 어려움을 겪고 있습니다. 난 노력 했어:

public void onModuleLoad() {
    TabPanel test = new TabPanel();
    test.setSize("100%", "100%");

    FlexTable flex = new FlexTable();
    for (int i = 0; i < 100; i++)
        flex.setText(i, 0, "test " + i);

    test.add(flex, "tab");
    flex.setStyleName("overflow-auto");

    test.selectTab(0);
    RootPanel.get().add(test);
    }

오버 플로우-오토는 다음과 같이 정의됩니다.

.overflow-auto {
    overflow: auto;
}

탭 패널의 너비는 100%를 차지하지만 스크롤 바를 강요하는 대신 높이를 내부로 확장 할 수 있습니다. Tabpanel의 클라이언트 영역을 여기에서 자녀의 크기와 무관하게 만드는 방법은 무엇입니까?

도움이 되었습니까?

해결책 2

GWT 2.0에는 내가 원하는 것을 수행 해야하는 새로운 레이아웃 시스템이 있습니다. http://code.google.com/webtoolkit/doc/latest/devguideuipanels.html#layoutpanels

다른 팁

원하는 효과를 얻으려면 해당 탭 내부의 스크롤 패널을 사용해야 할 것입니다. 스크롤 패널은 단일 위젯을 가져 와서 필요한 경우 스크롤 바를 넣는 컨테이너입니다. 스크롤 패널은 내가 아는 한, 명시 적 크기를 설정하는 데 달려 있습니다. 그렇지 않으면 내용을 입력 한 내용으로 행복하게 확장됩니다.

그러나 경고 : Tabpanel 내부에 어떤 종류의 스크롤 가능한 패널이있는 오랜 결함이있었습니다. 마지막으로 나는 그것이 여전히 열려 있음을 보았다.

http://code.google.com/p/google-web-toolkit/issues/detail?id=1343

여기서 찾고있는 솔루션은 Flextable을 수직 패널과 같은 다른 컨테이너 패널에 넣은 다음 스크롤 패널에 넣고 마침내 Tabpanel로 밀어 넣는 것입니다.

내가 언급했듯이, 스크롤 패널은 수동으로 높이를 관리해야합니다. 따라서 창의 높이를 유지하려면 브라우저 크기를 확인하고 스크롤 패널의 키가 얼마인지 알아내는 일부 코드를 작성하는 것이 포함됩니다. 크기 조정 핸들러를 창에 첨부하고 크기를 잡고 문제를 해결해야합니다.

적어도, 그것은 내가 지금보고있는 것처럼 브라우저 스크롤 바를 피하는 상황입니다. 내가 틀렸다면 누구든지 삭제할 코드가 있으므로 알려주세요 ...

저를 위해 일한 것은 자전거 샌드 코드가 쓴 것과 비슷했습니다.

  1. FlexPanel을 만듭니다
  2. ScrollPanel을 만들고 FlexPanel을 추가하십시오
  3. ScrollPanel의 필요한 크기를 설정하십시오 (절대 CSS 단위 사용)
  4. SimplePanel을 만들고 스크롤 패널을 추가하십시오
  5. Tabpanel에 SimplePanel을 추가하십시오

문제는 실제로 테이블을 탭 자식으로 설정할 때 테이블이 100% 너비/높이로 설정되어 있다는 것입니다. 그렇게한다면 오버플로-오토는 플렉스 테이블이 내용물 중 100%가되기 때문에 더 이상 의미가 없습니다.

오버 플로우는 픽셀을 사용하여 너비/높이를 설정하는 경우에만 작동합니다.

나는 HorizontalPanel (GXT에 의해 제공)을 Flextable의 부모로 사용하고 setAutoHeight (True) 메소드를 사용하고 있습니다. 이것은 잘 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top