GWT布局:“;占用剩余的空间。”;

GWT布局:“;占用剩余的空间。”;,gwt,layout,uibinder,Gwt,Layout,Uibinder,我现有的布局是由两个div-g:LayoutPanel中的层组成的堆栈。顶部div应尽可能大以包含其内容。底部的div应该占据屏幕上的剩余空间,而不会导致滚动条出现 top div的内容可以更改,因此top div的大小可以更改 我当前的解决方案是一个回调,每当top div的内容发生变化时就会触发它。然后,包含布局的面板可以重新计算顶部div的大小,并显式设置第二层的top和bottom属性以占用剩余空间。有更好的办法吗?大概 <g:LayoutPanel> <g:l

我现有的布局是由两个div-g:LayoutPanel中的层组成的堆栈。顶部div应尽可能大以包含其内容。底部的div应该占据屏幕上的剩余空间,而不会导致滚动条出现

top div的内容可以更改,因此top div的大小可以更改

我当前的解决方案是一个回调,每当top div的内容发生变化时就会触发它。然后,包含布局的面板可以重新计算顶部div的大小,并显式设置第二层的
top
bottom
属性以占用剩余空间。有更好的办法吗?大概

<g:LayoutPanel>
    <g:layer top="0px" height="whatever you need, baby">
        <c:SomeWidget/>
    </g:layer>
    <g:layer top="the bottom of the first layer" bottom="0px">
        <c:Anotherwidget/>
    </g:layer>
</g:LayoutPanel>

如何使用
DockLayoutPanel

<g:DockLayoutPanel unit='PX'>
  <north size="10" ui:field='northWidget'>
    <c:SomeWidget/>
  </north>
  <center>
    <c:Anotherwidget/>
  </center>
</g:DockLayoutPanel>

然后,
中心将占据剩余空间。如果要调整顶部的大小,请调用

setWidgetSize(northWidget,newSize)
中心
小部件将被重新计算。

答案似乎是没有更好的方法。如果你习惯了,手工重新计算也没那么糟糕

我认为HeaderPanel是实现这一点的标准小部件。可能是问完问题后加上去的。我们也错过了它,有一段时间我们有自己的版本。

如果你根本不想要滚动条,那么有一个简单的解决方案:使用带有
溢出:隐藏
的流程面板。但我假设,当底部面板溢出时,您确实希望出现一个滚动条?我也希望看到一个解决方案(我指的是在严格模式下也能工作的解决方案)。不确定,如果css2.1可以的话(?)是的,我需要第二层滚动面板的大小。嗯。但是我还是要计算一下northWidget的大小,对吗?我正在寻找一个解决方案,当northWidget改变大小时,它将自动流动。