2014-07-14 164 views
0

我有以下方法,我會調用幾次來創建一個按鈕列表。它運作良好,並創建按鈕。動態創建按鈕

public void CreateButton(int i) { 
    LinearLayout btnLayout = (LinearLayout)findViewById(R.id.btnLayout); 
    Button btn = new Button(this); 

    btn.setId(i); 
    btn.setText(String.valueOf(i+1)); 
    btnLayout.addView(btn); 
} 

但是每個創建的按鈕都適合寬度的屏幕,我希望它保持並排,每行兩個按鈕。我設法按鈕設置爲一半使用這種屏幕尺寸:

int displaywidth= getResources().getDisplayMetrics().widthPixels; 
btn.setLayoutParams(new LayoutParams((int)(displaywidth/2), LayoutParams.WRAP_CONTENT)); 

它使得按鈕的寬度是屏幕的一半大小,但我無法弄清楚如何並排放置他們身邊。任何幫助表示讚賞。

回答

0

將您的orientation更改爲您的LinearLayouthorizontal

<LinearLayout 
... 
    android:orientation="horizontal" 
... > 
    ... 
</LinearLayout> 

如果你只有一個單一的LinearLayout是容納多個並排側按鈕,可以使水平LinearLayout s到握住你的按鈕對,要麼窩他們在主veritical佈局或利用其它佈局,例如RelativeLayout,以獲得期望的結果。

+1

謝謝......我已經將主LinearLayout作爲垂直線,並在我的循環中爲每個兩個按鈕創建了一個水平方向的佈局,並用它來包裹每個兩個按鈕的集合。它像一個魅力....再次感謝! – LcSalazar

0

嘗試使用LinearLayout的weight屬性。如果每一行中你想只有兩個按鈕然後給

android:weightSum="1" 

到的LinearLayout和

android:layout_weight="0.5" 

每個按鈕,或者你可以在你的代碼通過

LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
         LayoutParams.MATCH_PARENT, 
         LayoutParams.MATCH_PARENT, xf); 

其中x動態設置的權重代表按鈕佈局權重的浮點值。 有關佈局重量的更多詳細信息http://developer.android.com/guide/topics/ui/layout/linear.html

0

解決此問題的一種方法是使用它們的重量和寬度。確保線性佈局具有水平方向。然後,使用Layout_params將它們的寬度設置爲「Wrap_Content」,並將它們的權重設置爲「1」。然後兩者將自動佔用相同數量的空間。