0

DisclosurePanel 内に SplitLayoutPanel をネストする場合、相対的な高さ属性 (100% など) を使用して DisclosurePanel を開く場合、SplitLayoutPanel は表示されません。生成された HTML を調べると、SplitLayoutPanel を含む行 (DisclosurePanel は 2 行のテーブルを生成します) の高さは 0px ですが、幅は正しく決定されています。

私は何か完全に間違っていますか?DisclosurePanel を削除すると、SplitLayoutPanel が正しく表示されます。また、SplitLayoutPanel の高さを絶対値 (500px など) に設定しても機能します。

どんな提案でも大歓迎です。

<!DOCTYPE html>
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui">
<g:DisclosurePanel width="99%">
    <g:header>Some Header</g:header>
    <g:SplitLayoutPanel ui:field="mySplitLayoutPanel"
        width="100%" height="100%">
        <g:west size="200">
            <g:ScrollPanel ui:field="streamTreePanel" styleName="ccTreePanel" />
        </g:west>
        <g:center>
            <g:VerticalPanel ui:field="streamTablePanel"
                styleName="ccTablePanel" width="100%" />
        </g:center>
        <g:east size="400">
            <g:ScrollPanel ui:field="streamInfoPanel" styleName="ccInfoPanel" />
        </g:east>
    </g:SplitLayoutPanel>
</g:DisclosurePanel>

4

1 に答える 1

1

LayoutPanelsProvidesResizeRequiresResize親ウィジェットの切れ目のないチェーンがRootLayoutPanel正しく機能する必要があります。あなたの場合DisclosurePanel、どのインターフェースも実装していません。
次のいずれかを実行できます。

  • ResizeLayoutPanelSplitLayoutPanelに入れます
  • で明示的な寸法を指定しますDisclosurePanel(詳細については、レシピを参照してください) 。
  • 独自のものを追加ResizeHandlerし、手動でサイズを変更しますSplitLayoutPanel( を呼び出しますonResize())。
于 2012-06-25T13:10:42.680 に答える