中心复选框以编程方式

时间:2013-04-27 05:38:19

标签: android

我有一张拉伸的桌子,我希望我的复选框也显示在表格行的中央。在我看过的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);

但是,相同的命令对复选框没有所需的效果。有谁知道有什么不同,我需要做什么。该复选框不在表格行中的任何其他布局内。

1 个答案:

答案 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编辑器创建它们,这样您就可以从代码中创建它们。