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

Adding Button to LinearLayout programmatically doesn't work properly

我有多个 dimens.xml 文件用于所有 "smallest width" 用于按钮大小。而且我还有多个版本用于主布局和按钮布局(用于 multi-screen 支持)。

我想以编程方式将多个按钮插入到布局中,并使用 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" />

我想看的:

我实际看到的:

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

对不起,我表达有误 我的意思是,结果按钮的大小有问题。主要是一个按钮的宽度。

您必须添加 layout_weight 参数并将其设置为 1 同时将 layout_widthlayout_height 更改为 wrap_content,您不能添加 7 个项目并从 dimens 设置高度和宽度。你的方式永远是错误的,结果也是如此。仅从 dimens 设置 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"