我有一个多个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" />
我实际看到的内容:
有人告诉我,我做错了什么?
抱歉,我表达错误。 我的意思是,结果按钮的大小有问题。主要是宽度为按钮。
答案 0 :(得分:1)
您必须添加layout_weight
参数并将其设置为1
,同时将layout_width
和layout_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"
。