我在表格布局中使用折叠功能时遇到了问题。如果所有行都具有相同数量的单元格,它将(几乎)很好地工作。
如果我有空单元格或跨度单元格,则布局会中断并且单元格未按应垂直排列,否则跨度单元格会消失。
在下面的示例中,我使用android:collapseColumns折叠了列,但是我以编程方式执行此操作时遇到了同样的问题。
示例
Ex 1:第一行具有空单元格的表,看起来不错: 隐藏蓝色列的同一个表格(android:collapseColumns =“ 2,5”) 第一行的红色单元格不在正确的位置,未与2d行的单元格对齐,列没有像在右侧留出空白之前那样努力地填充屏幕
Ex 2:在firts行上有layout_span的表,看起来不错:
隐藏了蓝色列的同一表格(android:collapseColumns =“ 2,5”) 第一行消失
同一张表中未指定单元格位置,第一行的权重= 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”,使外观看起来更好,右侧不再有空白,但单元格仍未对齐
<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>