2013-10-27 85 views
1

我的窗體底部有四個按鈕。點擊這些按鈕中的任何一個都會導致容器準備工作。在這個容器中,我有五個組件(包括按鈕),並且此容器可以處於三種狀態(容器內的按鈕單擊更改)。容器交換或組件交換

三種狀態我的意思是每次我按下一個按鈕作爲一個組件添加到這個容器我需要替換一些/添加一個或兩個組件,然後再次顯示容器。

現在,在這裏我很困惑是否應該更換容器內部的組件,或者每次點擊按鈕時創建一個新的容器並交換整個容器本身。

PS:更關注性能。

關於。

回答

1

您可以使用addComponent()和removeComponent()從容器中添加和移除元素。是非常類似於元素的向量。

我寫了一個例子代號之一,這裏我換組件在網格: http://meier-online.com/en/2012/10/codename-one-mirror-grid/ 這應該工作在LWUIT相同的(也許除了動畫)

我不覺得有什麼太大的性能更換容器或更換內部組件的差異。對於重繪,佈局必須在兩種情況下重新計算,並且容器本身沒有如此大的內存佔用(例如圖像)。 但是你應該注意到一個Component有一個方法getParent(),所以它只能有一個父對象。所以我只使用一個容器並交換元素。

+1

這是實際的正確答案,而替換方法的jmunoz回答確實正確,取代整個容器不會導致任何顯着的性能損失,甚至可能會更快,因爲您只能執行一個操作而不是幾個操作。 –

+0

@Shai Thankyou。 – Tirath

1

您可以使用稱爲替換的Container方法交換組件,只需要通過新的Component和舊的。您也可以使用動畫或將其設置爲空。

+0

感謝您的回覆。讓我再嘗試一次。我想知道哪種方法更高效 - 比如交換裝有組件的容器或容器,只交換需要移除或添加到容器中的組件。如果我們需要更多信息,請告訴我們。謝謝。 – Tirath

+1

這是更高效的交換隻需要刪除的組件,因爲你會毀掉這些內存引用,並且應用程序將更加高​​效 – Mun0n

+1

非常真實,適合我! –