2014-07-14 166 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”。然后两者将自动占用相同数量的空间。