2013-04-17 101 views
0

我正在開發一個Android應用程序,我使用LayoutInflator來生成新佈局。該應用程序的基本功能是 - 它具有一個imageview。當我點擊一個按鈕時,我將佈局更改爲顯示多個ImageView(如2x2或4x4)。我成功地使用LayoutInflator顯示這些佈局。但是,之前的佈局保持不變,新佈局顯示而不是舊佈局,這種佈局會混淆整個佈局。我的問題是 - 無論如何要在顯示新的佈局之前銷燬舊的佈局?如何銷燬佈局?

編輯:

這裏是代碼(在onClick事件,我使用)

public void oneby1onClick(View view){ 
    RelativeLayout main = (RelativeLayout)findViewById(R.id.main_layout); 
    view = getLayoutInflater().inflate(R.layout.activity_main, main,false); 
    main.removeView(main); 
    main.addView(view); 
} 

public void twoby2onClick(View view){ 
    RelativeLayout main = (RelativeLayout)findViewById(R.id.main_layout); 
    view = getLayoutInflater().inflate(R.layout.twoby2, main,false); 
    main.removeView(main); 
    main.addView(view); 
} 

public void fourby4onClick(View view){ 
    RelativeLayout main = (RelativeLayout)findViewById(R.id.main_layout); 
    view = getLayoutInflater().inflate(R.layout.fourby4, main,false); 
    main.removeView(main); 
    main.addView(view); 
} 
+1

後您的應用程序的代碼。 – Egor

+3

您不會銷燬佈局,而是替換它。看起來你做錯了,因爲通常佈局不會出現在彼此之上,除非你真的把它添加在頂部。 – zapl

+0

^+ 1我這樣做,只是我有佈局上的onclick事件改變像[這個鏈接提示](http://myandroidsolutions.blogspot.com/2012/06/android-layoutinflater-turorial.html)的按鈕。 @zapl - 你如何替換佈局? – TheRookierLearner

回答

1

也許你可以只讓你的佈局不可見的,如果是這樣的話。 這是可以做到很容易programmaticaly:

layout.setVisibility(View.GONE); 
+0

'View.GONE!= View.INVISIBLE';) – m0skit0

+0

你絕對不應該使用'View.INVISIBLE'。 –

+0

剛剛嘗試過,都是'View.GONE'和'View.INVISIBLE'。這使得整個'View'消失。即使是新的「視圖」也沒有出現。 – TheRookierLearner

0

據@ ookami.kb的建議我應該用main.removeAllViews();代替main.removeView(main);,幫助我。