2013-11-26 51 views
0

我正在製作一個動態生成佈局和其中所有視圖的應用程序。當用戶按下按鈕時,我需要刪除佈局(包含其中的所有視圖)並用新信息重新生成它。 我找了一個解決方案,我發現了以下方法:Android - View.GONE是正確的方式?

View.GONE 

我的問題是,如果這是正確的前進方式,因爲我不知道,如果一個用戶刪除了,重新佈局100次,這個東西使用多少內存。 View.GONE沒有清理我所瞭解的內存。

回答

1

所有內部視圖都被稱爲子視圖。所以,如果你想刪除一個子視圖,您可以撥打removeView (View view)

如果你想刪除所有的觀點:

viewGroup.removeAllViews() 

http://developer.android.com/reference/android/view/ViewGroup.html#removeAllViews()

+0

我不想刪除子視圖,但我想刪除包含子視圖的佈局,因此我可以通過刪除佈局來刪除所有佈局 – FeFe

+0

現在看到您的編輯。 removeAllViews可以是解決方案。因此,我可以刪除我添加到佈局的所有視圖,對不對? – FeFe

+0

只用removeView()方法就可以實現你想要的。你可以有嵌套的意見。也就是說,您的第一個子視圖將是佈局,而這些子佈局又可能包含其他視圖。現在,您可以通過parent.addView()和parent.removeView()簡單地添加/刪除外部子視圖(佈局)。「parent」這裏是佈局xml文件中定義的最外面的佈局。希望你理解我想說的話 – 2013-11-26 16:35:39

1

您可以通過刪除視圖:

((ViewManager)view.getParent()).removeView(view); 

否則,如果你是想用新的數據重新填充,你可以更改視圖的內容/文本而不是刪除它們。無論哪種方式。

編輯

要刪除的佈局將是你建議的方式。

findViewById(R.id.layout).setVisibiliy(View.GONE); 
+0

我不想刪除一個視圖,但我想刪除一個佈局,其中包含所有視圖。 – FeFe

+0

啊!檢查我的編輯上面。 – Brianjs

+0

好吧,所以我再次問我的問題,如果用戶刪除並重新佈局100次,這是一個令人難以置信的內存使用情況? – FeFe