我有一系列按钮要添加到TableLayout中的不同行。每个按钮需要有不同的宽度。但是,每个按钮的宽度最终设置为等于具有最大宽度的按钮。有人可以告诉我如何解决这个问题吗?
<TableLayout
android:id="@+id/table_to_fill"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/cat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="12sp"
android:textStyle="bold"
android:typeface="serif" >
</TextView>
<TextView
android:id="@+id/num_high"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="12sp"
android:textStyle="bold"
android:typeface="serif" >
</TextView>
</TableRow>
</TableLayout>
Java代码:
for (int i =0; i< 5; ++i){
TableRow row = new TableRow(this);
TextView t1 = new TextView(this);
t1.setText("cat: ");
t1.setTextSize(12);
row.addView(t1);
Button b1 = new Button(this);
b1.setText(numHighRisk.toString());
b1.setTextSize(12);
b1.setPadding(0, 0, 0, 0);
row.addView(b1);
int width;
if (i > 2)
width = 20;
else
width = 40;
int heightDp = (int) (25 * scale + 0.5f);
int widthDp = (int) (width * scale + 0.5f);
ViewGroup.LayoutParams params = b1.getLayoutParams();
params.height = heightDp;
params.width = widthDp;
b1.setLayoutParams(params);
TableLayout.LayoutParams rowParams = new TableLayout.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);
table.addView(row,rowParams);
}
(使用此代码,每个按钮的宽度相同)
答案 0 :(得分:1)
是的,在表格布局中,所有项目都将具有相同的大小,以使它们正确对齐,你可以做一件事尝试给你的按钮边距,以便他们的尺寸将减少,不同的按钮的不同边距。 例如,
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
答案 1 :(得分:0)
通过一些实验,我可以通过首先将每个按钮添加到FrameLayout然后将FrameLayout添加到行来完成不同的宽度。