您的位置:首页 > 移动开发 > Android开发

安卓表格布局android:collapseColumns,android:shrinkColumns和stretchColumn

2015-06-22 12:55 633 查看
TableLayout的行数由开发者直接指定,即有多少个TableRow对象(或View控件),就有多少行。

TableLayout的列数等于含有最多子控件的TableRow的列数。如第一TableRow含2个子控件,第二个TableRow含3个,第三个TableRow含4个,那么该TableLayout的列数为4.



TableLayout可设置的属性包含全局属性及单元格属性。

1、全局属性也即列属性。有下面3个參数:




android:stretchColumns 设置可伸展的列。该列能够向行方向伸展。最多可占领一整行。





android:shrinkColumns 设置可收缩的列。

当该列子控件的内容太多。已经挤满所在行,那么该子控件的内容将往列方向显示。





android:collapseColumns 设置要隐藏的列。








演示样例:





android:stretchColumns="0" 第0列可伸展





android:shrinkColumns="1,2" 第1,2列皆可收缩





android:collapseColumns="*" 隐藏全部行

说明:列能够同一时候具备stretchColumns及shrinkColumns属性,若此,那么当该列的内容N多时,将“多行”显示其内容。

(这里不是真正的多行,而是系统依据须要自己主动调节该行的layout_height)





2、单元格属性。有下面2个參数:




android:layout_column 指定该单元格在第几列显示

android:layout_span 指定该单元格占领的列数(未指定时。为1)





演示样例:

android:layout_column="1" 该控件显示在第1列

android:layout_span="2" 该控件占领2列

说明:一个控件也能够同一时候具备这两个特性。



TableLayout是一个使用复杂的布局。最简单的用法就不过拖拉控件做出个界面。但实际上。会常常在代码里使用TableLayout,比如做出表格的效果。

本文主要介绍TableLayout的基本用法。

<?xml version="1.0" encoding="utf-8"?

>

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<TableRow>

<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Button1"

android:layout_column="0"/>

<Button

android:id="@+id/button2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Hello, I am a Button2"

android:layout_column="1"/>

</TableRow>

</TableLayout>



1 android:stretchColumns = "指定的列" ------->以第0行为序,尽量把指定的列填充空白部分

设置stretchColumns=0,则结果例如以下图,第0列被尽量填充



设置stretchColumns=1,则结果例如以下图。第1列被尽量填充



2 android:shrinkColumns = "指定的列":以第0行为序,自己主动延伸指定的列填充可用部分

当LayoutRow里面的控件还没有布满布局时。shrinkColumns不起作用,例如以下图



当LayoutRow里面的控件还没有布满布局时(改写一下第三个Button的内容)



3 android:collapseColumns = “指定的列” 第0行为序。隐藏指定的列>

android:collapseColumns该属性为空时,例如以下图:



android:collapseColumns=“0” 意思是把第0列去掉,例如以下图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: