2013-02-05 103 views
0

我在我的RelativeLayout活動中有幾個按鈕。但我想還可以動態地添加一個按鈕,裏面的onCreate(),所以我做了這樣的事情:如何爲按鈕動態添加layout_toRightOf?

RelativeLayout rl = (RelativeLayout)findViewById(R.layout.activity_start_game); 
      ImageButton newbtn1 = new ImageButton(this); 
      newbtn1.setBackgroundResource(R.drawable.game_button_2); 
      rl.addView(newbtn1); 

但我也想設置高度,寬度值和信息,我的新按鈕sholud是例如正確的已存在的按鈕(類似於toRightOf在xml中,但現在是動態的)。預先感謝您的建議。

回答

0

使用setLayoutParams並將它傳遞給RelativeLayout.LayoutParams對象。它擁有所有的左側,右側等信息。您必須爲要添加的每項內容添加1條規則。

+0

你也可能知道,如果添加alignLeft和alignRight是在以同樣的方式,因爲我忘了問一下我的問題上面? – Ziva

+0

是的。寬度和高度傳遞給LayoutParams構造函數(並且包含wrapcontent和fillparent的特殊常量)。 –

2

爲了實現這一點,這些是您將要關注的API的主要部分。

首先,addRule(int verb, int anchor)方法:

http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html#addRule(int)

其次,供給的常量 「動詞」。

http://developer.android.com/reference/android/widget/RelativeLayout.html#constants

你會做這樣的事情:

RelativeLayout.LayoutParams params = new 
    RelativeLayout.LayoutParams(WRAP_CONTENT,WRAP_CONTENT); 
params.addRule(RIGHT_OF, R.id.some_widget); 
params.addRule(ALIGN_RIGHT, R.id.some_other_widget); 
newBtn1.setLayoutParams(params);