无法在android中设置按钮的宽度?

时间:2014-01-05 15:33:55

标签: java android xml

我使用以下代码在我的应用中设置按钮的宽度:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( 
    LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    layoutParams.setMargins(0, 0, 0, (int)(padding*density));
    b1.setLayoutParams (layoutParams);
    b1.setWidth((int)(buttonwidth*density)); 

现在,行b1.setWidth((int)(buttonwidth*density));对按钮的宽度完全没有影响。我尝试将宽度增加40像素,但按钮大小保持不变。如何以编程方式增加按钮宽度?

以下是按钮的XML:

 <Button
    android:id="@+id/login"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:text="@string/login"
     />

以下是屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:0)

setWidth无法正常工作,因为您已将按钮设置为与构造函数的父宽度匹配,方法是将其宽度设置为LinearLayout.LayoutParams.FILL_PARENT

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( 
LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

尝试将构造函数更改为

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( 
buttonwidth*density, LinearLayout.LayoutParams.WRAP_CONTENT);