2010-07-18 129 views

回答

403

是:

RelativeLayout.LayoutParams params= new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); 
params.addRule(RelativeLayout.BELOW, R.id.below_id); 
viewToLayout.setLayoutParams(params); 

首先,代碼通過指定的高度和寬度創建一個新的佈局PARAMS。 addRule方法正確添加了相當於xml的android:layout_below。然後,您只需致電View#setLayoutParams就可以獲得這些參數。

+2

Qberticus - 非常感謝作出詳細和明確的答覆。我會檢查這一點。 – AlanH 2010-07-19 07:25:31

+0

這對我來說很好。再次感謝。 – AlanH 2010-07-20 06:00:02

+0

很好的解釋... – 2011-10-18 07:47:12

119

或者您可以使用視圖當前佈局參數並進行修改:

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) viewToLayout.getLayoutParams(); 
params.addRule(RelativeLayout.BELOW, R.id.below_id); 
+3

它更像是對現有答案的評論,而不是另一個答案 – 2014-02-11 15:41:14

+13

@EelLee這是很明顯的另一種方式來回答這個問題,這就是爲什麼它有11個upvotes – 2015-01-04 20:50:14

+6

這應該比其他答案更有效:爲了保持視圖的一致行爲,我們應該使用現有的'LayoutParams'而不是創建新的視圖,事實上,這應該被接受爲正確的答案。 – 2016-10-19 21:27:51

4

雖然@jackofallcode答案是正確的,它可以寫在一行:

((RelativeLayout.LayoutParams) viewToLayout.getLayoutParams()).addRule(RelativeLayout.BELOW, R.id.below_id); 
相關問題