java - android 无法设置按钮的宽度?

标签 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*密度)); 对按钮的宽度完全没有影响。我尝试将宽度增加 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

最佳答案

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

关于java - android 无法设置按钮的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20935408/

相关文章:

java - 向 Android 布局添加圆角会留下白边

java - 添加一些代码行后,应用崩溃

android - android 中的 com.thoughtworks.xstream.mapper.CannotResolveClassException

sql-server - 安装 SQL Server 2012 时出现 XML 错误

java - 使用 com.github.clans.fab.FloatingActionButton 时命名空间 'fab' 未绑定(bind)错误

java - 如何在 SoapUI 中明智地比较两个 XML 文件?

java - 安卓构建标志?

android - 将不同的行 ID 从 appWidget 传递到任务中的单个 Activity 实例

java - 由于创建 bundle 失败,我无法在 Eclipse 中部署 JavaFX 项目

java - 通过 dropbox 同步 eclipse 工作区 - 移动 .metadata 文件夹