我有一张拉伸的桌子,我希望我的复选框也显示在表格行的中央。在我看过的textView上:
myTextView.setGravity(Gravity.CENTER);
我还尝试将其设置为表格参数:
这是我设置表格的XML:
<TableLayout
android:id="@+id/info"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/linearLayout1"
android:layout_margin="6dp"
android:stretchColumns="0,1,2,3,4" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="@drawable/roundedheader" >
这是我在创建每一行时调用的代码:
//set table margin
TableLayout.LayoutParams tableRowParams= new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
int leftMargin=0,rightMargin=0,bottomMargin=0;
int topMargin=5;
tableRowParams.setMargins(leftMargin, topMargin, rightMargin, bottomMargin);
tableRowParams.gravity = Gravity.CENTER;
row.setLayoutParams(tableRowParams);
// add the TableRow to the TableLayout
table.addView(row);
但是,相同的命令对复选框没有所需的效果。有谁知道有什么不同,我需要做什么。该复选框不在表格行中的任何其他布局内。
答案 0 :(得分:1)
我建议你在开始使用TableLayout之前检查这些链接:
http://developer.android.com/reference/android/widget/TableLayout.html
http://developer.android.com/reference/android/widget/TableRow.html
http://developer.android.com/reference/android/widget/TableRow.LayoutParams.html
此外,还有大量示例如何在Android SDK的API演示中使用TableLayout
。
假设您的布局android:stretchColumns="0,1,2,3,4"
至少有5列,但是从代码段中我无法假设有多少视图添加到row
。如果视图元素少于列,并且您想要使用该空闲空间,则需要指定TableRow.LayoutParams
android:layout_span
。因此,假设您连续只有一个CheckBox
,而下一步只需要5列:
TableRow.LayoutParams rowParams = new TableRow.LayoutParams();
rowParams.gravity = Gravity.CENTER;
rowParams.span = 5;
checkBox.setLayoutParams(rowParams);
另外,我建议您使用xml布局,而不是从代码中创建它们。如果您不能坚持使用xml布局,那么至少使用xml编辑器创建它们,这样您就可以从代码中创建它们。