动态并排创建按钮

时间:2014-07-14 19:48:24

标签: android android-layout

我有以下方法,我打了几次来创建一个按钮列表。它运作良好并创建按钮。

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));

它使按钮的宽度变为屏幕尺寸的一半,但我无法弄清楚如何将它们并排放置。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:0)

orientation中的LinearLayout更改为horizontal

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

如果您只有一个LinearLayout来容纳多个并排按钮,您可以使用水平LinearLayout来保持按钮对并将它们嵌套在主{{1}中布局或利用其他布局(例如veritical)来获得所需的结果。

答案 1 :(得分:0)

尝试使用LinearLayout的权重属性。如果在每一行中只需要两个按钮,则提供

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

的更多详细信息

答案 2 :(得分:0)

解决问题的一种方法是使用它们的重量和宽度。确保“线性布局”具有水平方向。然后,使用Layout_params将其宽度设置为“Wrap_Content”,将其权重设置为“1”。然后两者都会自动占用相同的空间。