TableLayout不是垂直居中的

时间:2013-11-29 18:28:45

标签: android android-layout tablelayout android-tablelayout

TableLayout内有RelativeLayout android:layout_centerInParent="true" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/line_drawing_relativelayout" android:layout_width="match_parent" android:layout_height="match_parent" > <TableLayout android:id="@+id/activity_linking_tl" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" > <TableRow android:id="@+id/table_row_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="1dp" > <com.xx.myview android:id="@+id/id_1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <com.xx.myview android:id="@+id/id_2" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow> </TableLayout> <ImageButton android:id="@+id/line_drawing_b_restart" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:padding="22dp" android:src="@drawable/ic_restart" > </ImageButton> <!-- There are more views/widgets here --> </RelativeLayout> 作为其属性之一,但它没有垂直居中。

这是我的xml:

{{1}}

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

您确定RelativeLayout占用了您想象的空间吗?可能是TableLayout居中,但RelativeLayout正在包装内容,因此它最终被居中但在比预期更小的容器中。如果没有看到XML的RelativeLayout部分,我很难进行评估。

检查布局的一种方法是使用developer option“show layout bounds”:

Developer options with "show layout bounds" enabled

它可以让您更好地了解布局的构建方式。如果您在没有此开发者选项的情况下运行旧手机,我只会开始为查看背景设置平面颜色(例如android:background="#F00")。

答案 1 :(得分:0)

尝试将父亲RelativeLayout宽度和高度设置为match_parent。

并将其添加到TableLayout

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"

答案 2 :(得分:0)

问题是我也有android:layout_below="xxx"(由于某种原因未在我发布的代码中显示),这超出了我试图实现的中心。删除它解决了它。显而易见。