2013-06-13 29 views
2

我有一個標籤和陸侃指示燈在我Vaadin指標空間。它在UI中動態顯示。這個進度指標下面有一棵樹。強制Vaadin組件佔據它在不可見狀態

當程序進度指示器的可見性動態地設置爲true,樹向下移動和UI震動由於換檔。

有沒有什麼辦法讓一個Vaadin組件佔據它的空間,哪怕是看不見的,因此,可見當它不能嘗試從其他UI組件借用空間?

我所尋找的是在Flex和ActionScript編程類似於setRendered(真)的功能。

感謝您的幫助。

+0

怎麼隨便說的setEnabled(假)的組成部分? –

+0

也許可以通過添加進度指示器和樹來分離可以設置爲靜態高度的佈局。 – Lundahl

+0

感謝他評論傢伙..會嘗試讓你知道它是否有效。 – dharam

回答

3

最後我得到了我的問題的答案。我用一個沒有文字的虛擬可見標籤替換了不可見組件。

,並用它替代地可見和不可見之間切換。

asked the question in the Vaadin forum,這裏是我得到的迴應,從Kim Leppanen

隨着Vaadin 7,如果你設置組件的可見性爲false,那麼組件的信息不會被髮送到瀏覽器在所有 - 它就好像該組件根本不存在於佈局中一樣。

我可以很快想出兩種解決方案。如果知道要切換其可見性的組件的大小,則可以使用佔位符組件(如標籤)。將正確尺寸的標籤放在您想要組件的地方。如果要將組件設置爲可見,請將標籤替換爲實際組件。

第二個選擇是使用CSS。爲要隱藏的組件應用css屬性「visibility:hidden」。請注意,該組件並非「真正」隱藏。假設它是一個按鈕。用戶仍然可以檢查DOM樹並查看代碼中的按鈕,更改客戶端組件的可見性(例如,使用開發人員工具或螢火蟲),然後查看並使用按鈕,就好像它在佈局中可見一樣。

我把它放在這裏,因爲人們可能會在那裏添加一些更有用的答案。詳細解釋請參閱this

1

使用下面的例子中你想設置爲不可見,但保持其佔用空間的組件:

Image home = new Image(); 
home.setSource(HOME); 
home.addStyleName("visibility: hidden"); 

OR

home.addStyleName("visibility: collapse");