表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象。TableRow中可以添加子控件,每添加一个为一列。
在TableLayout中,TableRow子控件宽高自动默认,除非要自定义,否则不用定义width,height。默认值如下所示:
android:layout_width="match_parent"
android:layout_height="wrap_parent"
在TableLayout中,TableRow表示每一行,至于有多少列,这是以所有TableRow控件中最多的那一个为标准。
在TableRow之间,添加View,设置layout_height="1dip"以及背景色,就可以实现一条分割线。如下所示:
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#ccccff"
/>
对所有属性的参数值0,1,2等等说明,这里的0是指的第一列,1指的是第二列,以此类推与java中的数组顺序类似。
全局属性(在TableLayout中设置)
1.android:collapseColumns作用是指定隐藏哪一列,若有多列需要隐藏,用逗号将需要隐藏的列写出来。例子如下:
android:collapseColumns="0" 表示隐藏第一列
没有隐藏前的效果图:
隐藏第一列后的效果图:
android:collapseColumns="1,2"
这表示要隐藏第二列和第三列,效果图如下:
2.android:shrinkColumns作用是设置该列为可收缩的列,防止挤出屏幕。
android:shrinkColumns="2"
表示设置第三列为可收缩的列。
没有设置之前的效果图:控件中的文字超出屏幕
设置后的效果图:控件中超出的文字自动换行显示
3.android:stretchColumns作用是设置该列为可伸展的列,来填满剩下的多余空白空间。
android:stretchColumns="2"
指定第三列为可伸展的列,填充剩余空白空间。
没有设置前效果图:第三列后面还有一小段空白。
设置后的效果图:第三列把后面的一小段空白填满了
局部属性(在TableRow子控件中设置)
1.android:layout_column作用是指定该控件为哪一列。
<TableRow>
<Button
android:layout_column="1" //指定为第二列
android:text="四行一列" />
</TableRow>
没有指定前的效果图:默认为第一列
指定后的效果图:排在了第二列
2. android:layout_span作用是设置该控件所占的列数。类似合并单元格的作用。
<TableRow>
<Button
android:layout_span="2" //表示该一个控件要占两列
android:text="四行一列" />
</TableRow>
没有设置前的效果图:
设置后的效果图:它一个控件占了两列