表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象。TableRow可以添加子控件,每添加一个为一列。

TableLayout属性:

  android:collapseColumns:将TableLayout里面指定的列隐藏,若有多列需要隐藏,请用逗号将需要隐藏的列序号隔开。

  android:stretchColumns:设置指定的列为可伸展的列,以填满剩下的多余空白空间,若有多列需要设置为可伸展,请用逗号将需要伸展的列序号隔开。

  android:shrinkColumns:设置指定的列为可收缩的列。当可收缩的列太宽(内容过多)不会被挤出屏幕。当需要设置多列为可收缩时,将列序号用逗号隔开。

 列元素(Button)属性:(奇怪的是button 里面没有android:layout_column 和android:layout_span两个属性,写进去无反应,还不知道为什么)

  android:layout_colum:设置该控件在TableRow中指定的列

  android:layout_span:设置该控件所跨越的列数

图片:

代码:

  1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical"
6 tools:context=".AndroidTableLayoutActivity" >
7
8 <!-- 定义第一个表格,指定第2列允许收缩,第3列允许拉伸 -->
9
10 <TableLayout
11 android:id="@+id/tablelayout01"
12 android:layout_width="match_parent"
13 android:layout_height="wrap_content"
14 android:shrinkColumns="1"
15 android:stretchColumns="2" >
16
17 <!-- 直接添加按钮,自己占用一行 -->
18
19 <Button
20 android:id="@+id/btn01"
21 android:layout_width="wrap_content"
22 android:layout_height="wrap_content"
23 android:text="独自一行" >
24 </Button>
25
26 <TableRow>
27
28 <Button
29 android:id="@+id/btn02"
30 android:layout_width="wrap_content"
31 android:layout_height="wrap_content"
32 android:text="普通" >
33 </Button>
34
35 <Button
36 android:id="@+id/btn03"
37 android:layout_width="wrap_content"
38 android:layout_height="wrap_content"
39 android:text="允许被收缩允许被收缩允许被收缩允许被收缩" >
40 </Button>
41
42 <Button
43 android:id="@+id/btn04"
44 android:layout_width="wrap_content"
45 android:layout_height="wrap_content"
46 android:text="允许被拉伸" >
47 </Button>
48 </TableRow>
49 </TableLayout>
50 <!-- 定义第2个表格,指定第2列隐藏 -->
51
52 <TableLayout
53 android:id="@+id/tablelayout02"
54 android:layout_width="match_parent"
55 android:layout_height="wrap_content"
56 android:collapseColumns="1" >
57
58 <TableRow>
59
60 <Button
61 android:id="@+id/btn05"
62 android:layout_width="wrap_content"
63 android:layout_height="wrap_content"
64 android:text="普通" >
65 </Button>
66
67 <Button
68 android:id="@+id/btn06"
69 android:layout_width="wrap_content"
70 android:layout_height="wrap_content"
71 android:text="被隐藏列" >
72 </Button>
73
74 <Button
75 android:id="@+id/btn07"
76 android:layout_width="wrap_content"
77 android:layout_height="wrap_content"
78 android:text="允许被拉伸" >
79 </Button>
80 </TableRow>
81 </TableLayout>
82 <!-- 定义第3个表格,指定第2列填满空白-->
83
84 <TableLayout
85 android:id="@+id/tablelayout03"
86 android:layout_width="match_parent"
87 android:layout_height="wrap_content"
88 android:stretchColumns="1"
89 >
90
91 <TableRow>
92
93 <Button
94 android:id="@+id/btn08"
95 android:layout_width="wrap_content"
96 android:layout_height="wrap_content"
97 android:text="普通" >
98 </Button>
99
100 <Button
101 android:id="@+id/btn09"
102 android:layout_width="wrap_content"
103 android:layout_height="wrap_content"
104 android:text="填满剩余空白" >
105 </Button>
106 </TableRow>
107 </TableLayout>
108 <!-- 定义第3个表格,指定第2列横跨2列-->
109
110 <TableLayout
111 android:id="@+id/tablelayout04"
112 android:layout_width="match_parent"
113 android:layout_height="wrap_content"
114 >
115
116 <TableRow>
117
118 <Button
119 android:id="@+id/btn10"
120 android:layout_width="wrap_content"
121 android:layout_height="wrap_content"
122 android:text="普通" >
123 </Button>
124
125 <Button
126 android:id="@+id/btn11"
127 android:layout_column="2"
128 android:layout_width="wrap_content"
129 android:layout_height="wrap_content"
130 android:text="填满剩余空白" >
131 </Button>
132 </TableRow>
133 </TableLayout>
134 </LinearLayout>

TableLayout(表格布局)的更多相关文章

  1. 【转】TableLayout(表格布局)

    转自:http://www.cnblogs.com/zhangs1986/archive/2013/01/17/2864536.html TableLayout(表格布局) 表格布局模型以行列的形式管 ...

  2. Android零基础入门第29节:善用TableLayout表格布局,事半功倍

    原文:Android零基础入门第29节:善用TableLayout表格布局,事半功倍 前面学习了线性布局和相对布局,线性布局虽然方便,但如果遇到控件需要排列整齐的情况就很难达到要求,用相对布局又比较麻 ...

  3. Android布局-TableLayout表格布局

    一.表格布局-TableLayout 1.概念 表格布局采用行列的形式来管理UI的控件.表格布局适合于有规则的布局. TableRow,用来管理行,TableRow中的一个空间占据该行的一列.若不用T ...

  4. 案例:TableLayout表格布局——迷你计算器

    计算器可以常用线性布局(LinearLayout)和表格布局(tableLayout).Gridlayout 今天我用的是表格布局 效果如下: 代码如下: <TableLayout xmlns: ...

  5. 2.2.3 TableLayout(表格布局)

    3.如何确定行数与列数 ①如果我们直接往TableLayout中添加组件的话,那么这个组件将占满一行!!! ②如果我们想一行上有多个组件的话,就要添加一个TableRow的容器,把组件都丢到里面! ③ ...

  6. android的布局-----TableLayout(表格布局)

    学习导图 (1)TableLayout的相关简介 java的swing编程和html中经常会使用到表格,可见表格的应用开发中使用还是比较多的,同样android也为我们提供这样的布局方式. (2)如何 ...

  7. TableLayout表格布局

    1.本节学习路线图 路线图分析: 从上面的路线图,可以看出TableLayout的用法还是很简单的,无非就是确定表格的行数,以及使用 那三个属性来设置每一行中的第某列的元素隐藏,拉伸,或者收缩即可! ...

  8. Android之TableLayout表格布局

    1.相关属性 1.1.常用属性 android:collapseColumns 设置需要被隐藏的列的序列号 android:shrinkColumns 设置允许被收缩的列的序列号 android:st ...

  9. TableLayout表格布局详解

    一.Tablelayout简介 Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件.当为TableRow对象时,可在TableRow下添加子控件 ...

随机推荐

  1. ahjesus根据身份证号码获取相关信息(生日,省市县,性别)

    使用说明: //出自http://www.cnblogs.com/ahjesus 尊重作者辛苦劳动成果,转载请注明出处,谢谢! var idCard = new IdCard();var msg = ...

  2. expect入门--自动化linux交互式命令

    很多linux程序比如passwd,ftp,scp,ssh等自身并没有提供一种静默式的执行选项,而是依赖于运行时的终端输入来进行后一步的操作比如更改密码.文件上传.下载等.虽然有些编程语言如java嵌 ...

  3. SharePoint 2013 新功能探索 之 标注控件

    SharePoint 2013 引入了新的UI,同时也跟进了网络潮流,把应用最广泛的标注控件也引入到了SharePoint,先看两个应用    以上是两个开发当中经常会用到,下面就介绍一下如何开发相同 ...

  4. [Angularjs]视图和路由(四)

    写在前面 关于angularjs的路由的概念基本上这篇就要结束了,通过学习,以及在实际项目中的实践,还是比较容易上手的.自己也通过angularjs做了一个在app上的一个模块,效果还是可以的. 系列 ...

  5. jquery 监控文本框键盘事件(回车事件),附常用keycode值。

    $(function(){ $(".search").keydown(function(event) { ) { //执行操作 } }) ); 完整的 key press 过程分为 ...

  6. App开发流程之图像处理工具类

    先罗列一下工具类中提供的方法: /** * 根据原始view和毛玻璃样式,获取模糊视图,并自动作为原view的subview(如果不需要作为子视图,自行调用removeFromSuperview) * ...

  7. DOM解析XML文件

    1.首先把第三方代码拖进工程 GDataXMLNode.h和GDataXMLNode.m这两个文件放进工程里面 2.引入libxml2库文件 3.将GDataXMLNode.h文件中的这两个东西在工程 ...

  8. 五种创建UIImage的类方法

    五种创建UIImage的类方法 UIImage有五个类方法,用来创建UIImage的.下面介绍一下每个类方法的作用和创建实例. 1.使用类方法imageNamed:创建 + (UIImage *)im ...

  9. Linux 下Firefox无法打开在'.domain'之前带有中划线的域名

    问题 Linux系统下的Firefox无法打开在".domain"之前带有中划线的域名 eg:"http://su---.diandian.com/" 问题原因 ...

  10. javascript 定时器

    setTimeout()--用于指定在一段特定的时间后执行某段程序.           格式: [定时器对象名=]setTimeout("<表达式>",毫秒数); 功 ...