DisclosurePanel内的SplitLayoutPanel

时间:2012-06-25 09:06:31

标签: gwt uibinder

在DisclosurePanel中嵌套SplitLayoutPanel时,在使用相对高度属性(例如,100%)打开DisclosurePanel时,不显示SplitLayoutPanel。检查生成的HTML会产生包含SplitLayoutPanel的行(DisclosurePanel生成一个包含两行的表),其高度为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>

1 个答案:

答案 0 :(得分:1)

LayoutPanels要求ProvidesResize之前的RequiresResizeRootLayoutPanel个父级小部件的完整链条才能正常运行。 在您的情况下,DisclosurePanel未实现任何接口 你可以:

  • 将您的SplitLayoutPanel放入ResizeLayoutPanel
  • DisclosurePanel中指定显式尺寸(有关详细信息,请参阅食谱)
  • 添加您自己的ResizeHandler并手动调整SplitLayoutPanel的大小(致电onResize())。