充气按钮的宽度和高度错误

时间:2017-12-08 13:35:07

标签: android button size layout-inflater

我正在构建导航片段。有一个始终存在的按钮(主按钮)和其他动态添加和删除的按钮。

我有一个xml资源文件,我从中提取按钮,更改它的图标并将其添加到片段根目录布局。

除按钮尺寸外,几乎所有功能都有效。后面的按钮大小为0(getWidth()/ getHeight())。

button_navigation.xml

<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/navigation_button"
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:background="@drawable/icon_test"
    android:backgroundTint="@drawable/selector_bar_button"></Button>

充气代码

Button butt = (Button) inflater.inflate(R.layout.button_navigation, null, false);

buttons.add(butt);
root_view.addView(butt);

创建inflater

public void setParent(MainActivity activity){
        parent = activity;
        inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

变量

MainActivity parent;
LayoutInflater inflater;

int index;

ArrayList<Button> buttons;
Button button_main;
LinearLayout root_view;

主按钮,具有与button_navigation.xml完全相同的代码,并出现在片段的布局文件中。主按钮的尺寸很好。

2 个答案:

答案 0 :(得分:1)

将您的按钮包裹在布局中。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">

<Button
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/nickname_message"
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:text="adawd awdaw"
    android:textSize="18sp"
    android:textStyle="bold" />

然后在运行时添加它。

linearLayout.addView(LayoutInflater.from(this).inflate(R.layout.item_layout,null));

答案 1 :(得分:0)

尝试在您的java代码button.setLayoutParams (new LayoutParams(60,60);

中使用它