我需要純粹使用Java創建此佈局,而不是使用XML。這意味着我在這個項目中沒有Eclipse的XML。現在我的佈局是這樣的:創建沒有XML文件的RelativeLayout
您可能無法從畫面,但塊0,1和3,告訴都在彼此的頂部。我需要的5塊看起來像這樣:
0 1 2
3 4
這是我第一次沒有使用XML文件,以使活動的佈局,所以我有搞清楚了這東西了微調一起。如果您注意到我在完成「長」的方式時可以更有效地編寫代碼,請讓我知道。
但我的問題是,爲什麼不是砌下我需要他們的順序?我覺得我在搞這個很簡單。
public class Puzzle extends Activity {
int z1to5 = 50;
int z6to10 = 50;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.XXXXX);
RelativeLayout relativelayout = new RelativeLayout(getApplicationContext());
Button bList[] = new Button[5];
for (int i = 0; i < 5; i++) {
Button button = new Button(getApplicationContext());
button = new Button(getApplicationContext());
button.setId(i);
button.setText("" + i);
relativelayout.addView(button);
bList[i] = button;
}
RelativeLayout.LayoutParams params0 = new RelativeLayout.LayoutParams(150, 150);
bList[0].setLayoutParams(params0);
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(150, 150);
params1.addRule(RelativeLayout.RIGHT_OF, bList[0].getId());
bList[1].setLayoutParams(params1);
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(150, 150);
params2.addRule(RelativeLayout.RIGHT_OF, bList[1].getId());
bList[2].setLayoutParams(params2);
RelativeLayout.LayoutParams params3 = new RelativeLayout.LayoutParams(150, 150);
params3.addRule(RelativeLayout.BELOW, bList[0].getId());
bList[3].setLayoutParams(params3);
RelativeLayout.LayoutParams params4 = new RelativeLayout.LayoutParams(150, 150);
params4.addRule(RelativeLayout.RIGHT_OF, bList[3].getId());
params4.addRule(RelativeLayout.BELOW, bList[1].getId());
bList[4].setLayoutParams(params4);
setContentView(relativelayout);
}
}
是否有你使用相對佈局而不是線性佈局的原因 –
我不知道答案是什麼,但1或2個按鈕去了正確的相對位置。 (2的右邊1)(4的右邊3和1以下)。那兩個有什麼不同? –
@JoshEngelsma不,沒有真正的理由。只是選擇它開始。根本不承諾。 – Matt