我具有以下布局,并希望动态显示和隐藏西面板:
<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
如何再次添加/显示西部内容,并相应调整中心内容的大小?
最佳答案
您可以使用api setWidgetHidden()隐藏扩展坞面板中的所有子项。此api可从gwt 2.5版本获得。