以编程方式将Button添加到LinearLayout无法正常工作

时间:2016-09-15 13:47:15

标签: android android-layout button layout-inflater

我有一个多个dimens.xml文件,适用于所有"最小宽度"我用于按钮大小。此外,我还有多个版本用于主要布局和按钮布局(用于支持多屏幕)。

我想以编程方式将多个按钮插入到布局中,并使用xml布局来扩充此按钮。

我就是这样做的:

    Button temp_button = null;
    final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    for(int i = 0; i < 7; i++) {
       temp_button = (Button)inflater.inflate(R.layout.answer_letter_button, null);
       temp_button.setTextColor(accent_color);

       answer_letters.add(temp_button);

       answer_panel.addView(answer_letters.get(i));
}

这是这些按钮的父布局:

<LinearLayout
        android:id="@+id/answer_panel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center"
        app:layout_constraintBottom_toTopOf="@+id/letter_panel">
</LinearLayout>

按钮布局:

<Button
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="@dimen/answer_letter_button_size"
    android:layout_height="@dimen/answer_letter_button_size"
    android:text="M"
    android:textStyle="bold"
    android:textColor="@color/colorAccent"
    android:textSize="@dimen/answer_letter_button_text_size"
    android:layout_margin="@dimen/answer_letter_button_margin_size"
    android:background="@drawable/shaped_button" />

我想看到的内容: enter image description here

我实际看到的内容:

enter image description here

有人告诉我,我做错了什么?

抱歉,我表达错误。 我的意思是,结果按钮的大小有问题。主要是宽度为按钮。

1 个答案:

答案 0 :(得分:1)

您必须添加layout_weight参数并将其设置为1,同时将layout_widthlayout_height更改为wrap_content,您可以添加7项并设置尺寸的高度和宽度。你的方式永远是错误的,结果也是如此。只设置维度中的textSize,然后查看您搜索的内容。

 <Button
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="M"
        android:textStyle="bold"
        android:textColor="@color/colorAccent"
        android:textSize="@dimen/answer_letter_button_text_size"
        android:layout_margin="@dimen/answer_letter_button_margin_size"
        android:background="@drawable/shaped_button" />

并添加父级布局android:weightSum="7"