TableLayout崩溃列和空单元格或跨单元格会中断布局

时间:2018-09-15 08:36:07

标签: android tablelayout

我在表格布局中使用折叠功能时遇到了问题。如果所有行都具有相同数量的单元格,它将(几乎)很好地工作。

如果我有空单元格或跨度单元格,则布局会中断并且单元格未按应垂直排列,否则跨度单元格会消失。

在下面的示例中,我使用android:collapseColumns折叠了列,但是我以编程方式执行此操作时遇到了同样的问题。

示例

Ex 1:第一行具有空单元格的表,看起来不错: enter image description here 隐藏蓝色列的同一个表格(android:collapseColumns =“ 2,5”) 第一行的红色单元格不在正确的位置,未与2d行的单元格对齐,列没有像在右侧留出空白之前那样努力地填充屏幕

enter image description here

Ex 2:在firts行上有layout_span的表,看起来不错: enter image description here

隐藏了蓝色列的同一表格(android:collapseColumns =“ 2,5”) 第一行消失 enter image description here

同一张表中未指定单元格位置,第一行的权重= 1时也没有跨度。效果很好

这是最后一个示例的代码

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:stretchColumns="*"
    android:collapseColumns="2,5" >

    <TableRow>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/red"
            android:layout_span="3"
            android:text="000" />
        <TextView
            android:layout_width="wrap_content"
            android:background="@color/red"
            android:layout_column="3"
            android:layout_span="3"
            android:layout_height="wrap_content"
            android:text="PPPPPPPP" />
    </TableRow>

    <TableRow>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/red"
            android:text="1" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/green"
            android:text="2" />
        <TextView
            android:layout_width="wrap_content"
            android:background="@color/blue"
            android:layout_height="wrap_content"
            android:text="3" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/red"
            android:text="4" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/green"
            android:text="5" />
        <TextView
            android:layout_width="wrap_content"
            android:background="@color/blue"
            android:layout_height="wrap_content"
            android:text="6" />
    </TableRow>

    <TableRow>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/red"
            android:text="AAA" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/green"
            android:text="B" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/blue"
            android:text="CCC" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/red"
            android:text="D" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/green"
            android:text="EEEEEE" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/blue"
            android:text="FF" />
    </TableRow>
</TableLayout>

向所有单元格添加android:layout_weight =“ 1”,使外观看起来更好,右侧不再有空白,但单元格仍未对齐

enter image description here

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:stretchColumns="*"
    android:collapseColumns="2,5" >

    <TableRow>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/red"
            android:layout_weight="1"
            android:text="000" />
        <TextView
            android:layout_width="wrap_content"
            android:background="@color/red"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="PPPPPPPP" />
    </TableRow>

    <TableRow>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/red"
            android:layout_weight="1"
            android:text="1" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/green"
            android:layout_weight="1"
            android:text="2" />
        <TextView
            android:layout_width="wrap_content"
            android:background="@color/blue"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="3" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@color/red"
            android:text="4" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@color/green"
            android:text="5" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:background="@color/blue"
            android:layout_height="wrap_content"
            android:text="6" />
    </TableRow>

    <TableRow>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@color/red"
            android:text="AAA" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@color/green"
            android:text="B" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/blue"
            android:text="CCC" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@color/red"
            android:text="D" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@color/green"
            android:text="EEEEEE" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@color/blue"
            android:text="FF" />
    </TableRow>
</TableLayout>

0 个答案:

没有答案