有人可以告诉我为什么我的按钮宽度没有增加。我做错了什么。 我正在尝试动态创建按钮并设置它们的宽度和高度。
public class MainActivity extends Activity {
LinearLayout l;
LinearLayout linear;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
l=(LinearLayout) findViewById(R.id.linear);
for(int i=0;i<10;i++)
{
linear=new LinearLayout(this);
LinearLayout.LayoutParams par=new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
linear.setLayoutParams(par);
linear.setOrientation(LinearLayout.HORIZONTAL);
Button b=new Button(this);
b.setId(i+1);
b.setText("button:"+(i+1));
b.setWidth(800);// set the width of button
b.setHeight(30);// height of button
linear.addView(b);
l.addView(linear); // main layout in which i have to show button
}
}
}
这是输出:我得到了什么 在此处输入图像描述
答案 0 :(得分:1)
要自动增加按钮宽度,可以使用wrap_content。
您可以使用此代码以编程方式设置LayoutParams
把这个:
b.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
之前:
linear.addView(b);
答案 1 :(得分:0)
使用LayoutParams添加动态按钮,如下面的代码
Button b=new Button(this);
b.setId(i+1);
b.setText("button:"+(i+1));
LayoutParams lp1 = new LayoutParams(800,30);
linear.addView(b, lp1);
答案 2 :(得分:0)
给出按钮布局的宽度和高度,就像对LinearLayout一样。
答案 3 :(得分:0)
同样在这种情况下,您无需在linear
(LinearLayout)中添加按钮,因为您先将它们添加到linear
,然后将linear
添加到l
在同一个循环中。每个LinearLayout(线性)只能容纳一个按钮,不需要。将所有按钮添加到linear
,当循环完成后,将其添加到l
(仅一次)或不创建“线性”并将其直接添加到l
你可以做些什么来使它更简单:
for(int i=0;i<10;i++)
{
Button b=new Button(this);
b.setId(i+1);
b.setText("button:"+(i+1));
b.setWidth(800);// set the width of button
b.setHeight(30);// height of button
b.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
l.addView(b); // main layout in which i have to show button
}