В CheckBox вместо установки android:gravity="center_horizontal"
вы хотите установить android:layout_gravity="center_horizontal"
android:gravity
, управляющий тем, как представление размещает свое содержимое в своем собственном контейнере, и поскольку у вас установлена ширина"wrap_content"
, для CheckBox нет свободного места для центрирования внутри.
android:layout_weight
сообщает родительскому представлению (в данном случае TableRow), как расположить дочерний элемент, поэтому он будет центрироватьCheckBox внутри ячейки таблицы.