我在gwt中使用以下代码:
<g:DockLayoutPanel unit='EM'>
<g:north size='5'>
<g:Label>www.wing-project.org</g:Label>
</g:north>
<g:west size='10'>
<g:StackLayoutPanel unit='EM'>
<g:stack>
<g:header size='3'>
Monitor
</g:header>
<g:HTMLPanel>
Overview
</g:HTMLPanel>
</g:stack>
<g:stack>
<g:header size='3'>
Configure
</g:header>
<g:HTMLPanel>
link
</g:HTMLPanel>
</g:stack>
<g:stack>
<g:header size='3'>
Help
</g:header>
<g:HTMLPanel />
</g:stack>
</g:StackLayoutPanel>
</g:west>
<g:center>
<g:HTMLPanel>
<g:Button ui:field="button" />
</g:HTMLPanel>
</g:center>
</g:DockLayoutPanel>
这会生成一个标题,左侧窗格包含stacklayout,主窗格包含实际内容。问题是带有stacklayout的左窗格占用了所有可用的verticale空间,而我希望有一个stacklayoutpanel,其垂直大小取决于活动堆栈中可视化文本的数量。
这与stacklayoutpanel应该如何工作兼容吗?如果是这样,我怎样才能达到目标?
答案 0 :(得分:1)
您可以手动设置StackLayoutPanel的大小,但您必须计算自己的大小 - 可能使用relevantStackWidget.getOffsetHeight()
。这可能非常棘手,因为对于某些元素,getOffsetHeight()将返回不同的值,具体取决于StackLayoutPanel所处的动画阶段。
单独使用当前的GWT API无法让你的行为像你想要的那样。