Android: ¿cómo centrar la vista dentro de la columna de TableLayout?

Estoy intentando crear un TabeLayout con una cuadrícula de CheckBoxes. En la parte superior hay 2 encabezados, y cada fila adicional consta de una etiqueta y 2 casillas de verificación. Me gustaría que la tabla llene todo el espacio disponible, que la primera columna esté orientada a la izquierda y que las casillas de verificación y sus encabezados se centren dentro de sus columnas. En el diseño siguiente, los encabezados aparecen centrados correctamente, pero las casillas de verificación no lo están. Agregué un color de fondo a uno de los cuadros de verificación, esto demuestra que el cuadro de verificación en realidad creció para llenar su columna (por lo que no se centrará como se desea); a pesar del parámetro de diseño "wrap_content".

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:orientation="vertical">
    <TableLayout 
        android:stretchColumns="1,2"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <TableRow>
            <TextView 
                android:text="" 
                android:gravity="center_horizontal"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content">
            </TextView>
            <TextView 
                android:text="First category" 
                android:gravity="center_horizontal"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content">
            </TextView>
            <TextView 
                android:text="2nd category" 
                android:gravity="center_horizontal"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content">
            </TextView>
        </TableRow>
        <TableRow>
            <TextView 
                android:text="Row 1: " 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content">
            </TextView>
            <CheckBox
                android:background="#FF001122"
                android:layout_height="50dip"
                android:layout_width="wrap_content" 
                android:gravity="center_horizontal">
            </CheckBox>
            <CheckBox
                android:layout_height="50dip"
                android:layout_width="wrap_content" 
                android:gravity="center_horizontal">
            </CheckBox>
        </TableRow>
    </TableLayout>
</LinearLayout>

Respuestas a la pregunta(2)

Su respuesta a la pregunta