2013-07-12 145 views
1
FrameLayout frameLayout = new FrameLayout(this); 
LinearLayout linearLayout1= new LinearLayout(this); 
LinearLayout linearLayout2= new LinearLayout(this); 

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

params.gravity = Gravity.CENTER_VERTICAL; 

frameLayout.addView(linearLayout1, params); 

如何根據你的代碼工作的知識添加linearLayout2 linearLayout1如何以編程方式在FrameLayout中的另一個LinearLayout下添加LinearLayout?

+0

什麼,當你編譯並運行此代碼會發生什麼? –

+0

可以將框架佈局設置爲Relativelayout,並將新線性佈局的layout_below參數設置爲低於第一個線性佈局ala [here](http://stackoverflow.com/a/3277302/418505),或者您可以承載垂直方向的線性佈局中的兩個線性佈局? – Selecsosi

+0

如果你需要做這樣的事情,那麼你做錯事的機率很高,肯定會有另一個更好的組件,爲什麼不更好地解釋你在這裏試圖完成什麼,所以我們可以提供幫助。 .. –

回答

14

下。

更改FrameLayout爲垂直線性佈局,即它將它的孩子放置在彼此之下。

LinearLayout parentLayout = new LinearLayout(this); 
LinearLayout linearLayout1= new LinearLayout(this); 
LinearLayout linearLayout2= new LinearLayout(this); 

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

params.gravity = Gravity.CENTER_VERTICAL; 

parentLayout.setOrientation(VERTICAL); 
parentLayout.addView(linearLayout1, params); 
parentLayout.addView(linearLayout2, params); 
+1

在setOrientation方法中出現一個錯誤(VERTICAL)@Blundell –

+1

我解決了它,你應該寫LinearLayout.VERTICAL,謝謝 –

1

FrameLayout Documentation指出:

...子視圖在一個組中獲得,在頂部最近添加的孩子。該FrameLayout裏的大小是其最大的孩子(加墊)的大小...

所以你不能(至少容易)做你想要什麼。然而一個的LinearLayout作爲根會自動執行此操作,所以我建議考慮使用一個...

希望這有助於...

相關問題