2011-08-04 58 views
0

我需要用6個按鈕(相同大小h和w)以編程方式設計一個活動,並且所有按鈕都顯示一個完整的活動。如何使用RelativeLayout使用n個相同大小的按鈕進行活動?

我試過這樣做:RelativeLayout with buttons並修改測試。

顯示一個按鈕! `

setContentView(R.layout.main);  

    ArrayList<Button> buttons = new ArrayList<Button>(); 
    //RelativeLayout bg = (RelativeLayout) findViewById(R.layout.main); 

    for (int i = 0; i < 10; i++) { 
     Button newButton = new Button(this); 
     newButton.setId(100 + i + 1); // ID of zero will not work 
     newButton.setText("XXXX"); 
     buttons.add(newButton); 
     // New layout params for each button 
     RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
       RelativeLayout.LayoutParams.WRAP_CONTENT, 
       RelativeLayout.LayoutParams.WRAP_CONTENT); 

     if (i > 0) { 
      // using getId() here in case you change how you assign IDs 
      int id = buttons.get(i - 1).getId(); 
      lp.addRule(RelativeLayout.RIGHT_OF, id); 
     } 
     this.addContentView(newButton, lp); 
    }` 

請看看這行,如果確定:this.addContentView(newButton,LP);

謝謝!

馬特烏斯

回答

0

這是一個有點不是從你的問題,你是否希望所有的按鈕在整個的活動空間或每個按鈕接管所有的活動空間均勻分佈清楚了嗎?

在第一種情況下,你需要的是與layout_weight一個LinearLayout中的設置爲1

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
LinearLayout.LayoutParams.WRAP_CONTENT); 
lp.weight = 1; 

在第二種情況下按鈕,我認爲這是更好地使用FrameLayout裏,只是讓按鍵設置接管所有空間

FrameLayout.LayoutParams.FILL_PARENT 

這兩個維度。

相關問題