Не удается установить ширину кнопки в 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"
     />

И вот скриншот экрана:

введите описание изображения здесь

1 ответ

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);
Другие вопросы по тегам