2013-02-26 29 views
1

我有以下的佈局,要動態顯示和隱藏西部面板:如何在DockLayoutPanel中顯示和隱藏小部件?

<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 

我如何添加/顯示內容西邊再次,使中心內容相應調整?

回答

7

您可以使用api setWidgetHidden()將任何孩子隱藏在停靠欄中。這個API可以從gwt 2.5版本獲得。

+0

太好了,正是我在找的東西。 – membersound 2013-02-26 11:41:40

+0

+1 @Abhi。最新更新:) – 2013-03-02 12:12:17