各位看官们,大家好,上一回中咱们说的是"Glide基本用法"的例子,这一回中咱们介绍的例子是"如何使用TableLayout布局"。闲话休提,言归正转,让我们一起Talk Android吧!
看官们,在项目中如果想让布局中的UI控件以表格形式排列,那么可以使用表格布局(TableLayout),表格的用法和线性布局类似,不过也有一些特殊的用法,我们在本章回中将详细介绍如何使用表格布局
表格中行数和列数等于表格中控件的个数。所有控件按行进行排列,行数为控件数量,列数为一,也就是单列。TabaleLayout中可以包含其它的UI控件,也可以使用TableRow指定行中的内容,TableRow
中可以嵌套其它UI控件,它包含的所有控件组成一行,控件的数量就是列的数量。
总之,在表格布局中,我们只需要向其中添加控件就可以了,系统会自动计算表格布局中的行数和列数。
直接添加在TabaleLayout
中的控件以及TableRow
都不能使用layout_width
和layout_width
属性设置宽度和高度,它们的宽度永远是MATCH_PARENT
,高度为WRAP_CONTENT
。也就是说不能整体指定表格中某行或者某列的长度和宽度,但是可以指定行或者列中单元格的长度和宽度,单元格的长宽和宽度由其自身来控制,而且会影响单元格所在的行高和列宽。
每行中子控件的宽度和高度可以自行指定,使用layout_width和layout_width属性来设置宽度和高度,这个和其它控件的指定方法相同。
同列中各个单元格的高度可以不同,但是宽度必须相同,列的宽度等于同列中宽度值最大的单元格的宽度。
同行中各个单元格的高度和宽度都可以不同,行的高度等于同行中高度值最大的单元格的高度。
虽然不能在TabaleLayout中的控件以及TableRow上使用layout_width和layout_width属性,但是可以使用layout_weight属性,这样可以形成宽度和高度按照权重分配的表格,如果权重值都为一,那么就会生成类似Excel表格一样的布局。
表格布局提供了相关的属性来控制布局中单元格的压缩与拉伸,下面是属性名称以及使用方法。我感觉这两个属性的使用场景不多,因为它们需要符合特定的条件才有效果。
android:shrinkColumns="1"
android:stretchColumns="2"
表格布局提供了相关的属性来控制布局中单元格的隐藏与显示,下面是属性名称以及使用方法。
android:collapseColumns="1,2"
android:layout_column="5"
表格布局提供了相关的属性来控制布局中单元格是否可以跨行显示,以及跨越的行数。
android:layout_span="2"
下面是一个完整的示例,代码中添加了相关的注释以方便大家理解。
<TableLayout
android:stretchColumns="2"
android:layout_width="match_parent"
android:layout_height="200dp">
<TableRow>
<TextView
android:layout_width="60dp"
android:text="1"/>
<TextView
android:layout_height="50dp"
android:text="2"/>
<TextView
android:layout_width="60dp"
android:text="2111111112222"/>
<TextView
android:layout_width="60dp"
android:text="222222222"/>
<TextView
android:layout_width="60dp"
android:text="233333333"/>
<TextView
android:layout_width="60dp"
android:text="2444444444"/>
TableRow>
<TableRow>
<TextView
android:layout_weight="1"
android:text="3"/>
<TextView
android:layout_weight="1"
android:text="4"/>
<TextView
android:layout_weight="1"
android:text="5"/>
TableRow>
<TableRow>
<TextView
android:text="5"/>
TableRow>
TableLayout>
看官们,关于Android中"如何使用表格布局"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!