1

TabLayoutPanel があり、次のコード例のように高さを固定したくありません ( tabPanel.setHeight("100px");)。最初のタブの HTML ウィジェットなど、タブ コンテンツの高さを指定したい)。高さを手動で設定しないと、タブのコンテンツがまったく表示されません。コンテンツに合わせた高さでこれを機能させる方法はありますか?

public class GWTTest implements EntryPoint {

    public void onModuleLoad() {
        TabLayoutPanel tabPanel = new TabLayoutPanel(3, Unit.EM);

        tabPanel.setAnimationDuration(400);
        tabPanel.add(new HTML("Tab1 Content"), "Tab 1");

        tabPanel.add(new HTML("Tab2 Content"), "Tab 2");

        tabPanel.setHeight("100px");

        RootPanel.get().add(tabPanel);

    }
}

また、「オーバーフロー」および「位置」属性を使用してcssを直接いじろうとしましたが、これにより常にアニメーションなどが壊れます。

編集:独自のタブ パネルを実装するか、既存の JavaScript ライブラリを使用するのが最も簡単な方法のようです。

4

2 に答える 2

0

私もこの問題に遭遇しましたが、残念ながら高さを設定する必要があります。すべての回避策は失敗します。しかし、それらのいくつかは次のことを示唆しています。

TabLayoutPanelHeaderPanelに置き換えることができます:

ヘッダー (上部)、フッター (下部)、およびコンテンツ (中央) 領域を含むパネル。ヘッダーとフッターの領域は自然にサイズ変更されます。コンテンツ領域には、ヘッダー領域とフッター領域の間の残りのスペースがすべて割り当てられます。

または、埋め込みコンテンツの高さを計算するonResize()メソッドをオーバーライドして、適切な高さを設定することもできます。ResizeLayoutPanel

スクロール機能が必要な場合はVerticalPanelScrollPanelに埋め込むか、CSS を使用して oferflow プロパティを設定する必要があります。

于 2013-06-09T17:53:51.753 に答える