3

私の既存のレイアウトは、LayoutPanel の g:layers という 2 つの div のスタックです。上部の div は、そのコンテンツを含めるために必要な大きさにする必要があります。一番下の div は、スクロールバーを表示せずに、画面の残りのスペースを占有する必要があります。

トップ div の内容は変更される可能性があるため、トップ div のサイズは変更される可能性があります。

私の現在の解決策は、トップ div の内容が変更されるたびにトリガーされるコールバックです。含まれている LayoutPanel は、上部の div のサイズを再計算し、残りのスペースを占有するように 2 番目のレイヤーの属性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>
4

3 に答える 3

1

を使用するのはDockLayoutPanelどうですか?

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

次に、centerが残りのスペースを占有します。トップのサイズを変更したい場合は、呼び出す setWidgetSize(northWidget, newSize);centerウィジェットが再計算されます。

于 2010-11-16T13:24:59.033 に答える
0

答えは、より良い方法はないようです。慣れれば手動再計算も悪くない!

于 2011-12-08T00:33:59.627 に答える
0

HeaderPanel はこれを行うための標準的なウィジェットだと思います。質問後に追加されたのかもしれません。私たちもそれを逃し、しばらくの間独自のバージョンを持っていました。

于 2013-07-20T07:27:09.763 に答える