1

次のレイアウトがあり、西のパネルを動的に表示および非表示にします。

<g:DockLayoutPanel ui:field="dock">
 <g:west><g:Label text="west" ui:field="west"/></g:west>
 <g:east><g:ToggleButton text="toggle"/></g:east>
 <g:center>center</g:center>
</g:DockLayoutPanel>

表示/非表示には、トグルボタンを定義しました。実行します:

@UiField
Label west;

@UiField
DockLayoutPanel dock;

    dock.remove(west);
    //or
    dock.addWest(west);

コンテンツを中央の要素に残したい。非表示にするとwest、すべてが正常に機能し、centerそれに応じてコンテンツのサイズが変更され、空き領域が確保されます。もう一度を押してメソッドToggleButtonを実行すると、addWest()次の例外が発生します。

com.google.gwt.event.shared.UmbrellaException: Exception caught: No widget may be added after the CENTER widget

西側のコンテンツを再度追加/表示し、それに応じて中央側のコンテンツのサイズを変更するにはどうすればよいですか?

4

1 に答える 1

7

API setWidgetHidden()を使用して、ドック パネルの子を非表示にすることができます。この API は gwt 2.5 バージョンから使用できます。

于 2013-02-26T11:24:16.130 に答える