我试图将一个TableLayout作为LinearLayout中的唯一项(它有一个背景图标,我想覆盖整个屏幕),我想将其居中,并说使用60%的宽度和70%的高度,例如。我有这个,看起来还可以,但我不确定它能在很多设备上工作,我想知道什么是最好的,最通用的表达方式。

<LinearLayout
    android:id="@+id/mainLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/mylogo"
    android:padding="0dip"
    android:gravity="center_vertical|center_horizontal"
    android:baselineAligned="false"
    >

    <TableLayout
        android:background="#FFFF0000"
        android:layout_width="200dp"
        android:layout_height="250dp"
        android:gravity="center_vertical|center_horizontal"
        android:stretchColumns="field">

    </TableLayout>

</LinearLayout>

我摆弄了一下排版的重量,但我唯一能做的就是让桌子消失。
谢谢
史蒂芬

最佳答案

LinearLayout只能按权重对一维进行子级调整,但由于您只担心调整单个视图的大小,因此可以通过嵌套LinearLayouts来完成此操作。

<LinearLayout
    android:id="@+id/mainLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/mylogo"
    android:gravity="center"
    android:weightSum="1.0">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:orientation="horizontal"
        android:gravity="center"
        android:weightSum="1.0"
        android:layout_weight="0.7">

        <TableLayout
            android:background="#FFFF0000"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:stretchColumns="field"
            android:layout_weight="0.6">

        </TableLayout>

    </LinearLayout>
</LinearLayout>

这种布局在不同设备上是否好看取决于您的内容。一般来说,我倾向于合理的填充/边距,但这又非常依赖于内容。

10-04 14:08