次のレイアウトがあり、西のパネルを動的に表示および非表示にします。
<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
西側のコンテンツを再度追加/表示し、それに応じて中央側のコンテンツのサイズを変更するにはどうすればよいですか?