2014-01-05 38 views
1

我使用下面的代碼來設置按鈕的寬度在我的應用程序:無法在android中設置按鈕的寬度?

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

回答

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

寬度相同。 –

+0

填充的值是什麼?如果將其設置爲0會發生什麼? – Daniel

+0

丹尼爾,仍然沒有效果。 –

相關問題