Android UI之TableLayout(表格布局)

说明:表格布局采用常见的表格方式来表示布局,与上文中提到的android:weight属性显示出来的效果有些相似。而事实上,TableLayout的确是LinearLayout的子类,因此本质上还是线性布局。实际开发中,我们经常会采用adnroid:weight属性来代替表格布局。

跟在html中写表格有点类似,在TableLayout中,我们可以通过TableRow标签来为表格添加一个新的行。与html不同的是,只要包裹在TableLayout中,一个组件也可以成为一个新的行,如:

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</TableLayout>

上面的代码会绘制出一个占据了整个父容器宽度的Button组件。

TableLayout中的列是由列数最大的行决定的,比如:一个TabLeLayout有两行,第一行有三列,第二行有五列,那么这个表格的就是3*5的。每列的最大宽度,同样由最宽的列来决定。

在表格布局中,我们需要关注的属性有三个,都是对单元格进行设置的属性:

1 android:shrinkColumns

对应方法:setShrinkAllColumns(boolean)

说明:用来设置被允许收缩的列,多个列号之间可以用“,”隔开。

这里所谓的收缩就是当单元格中的内容(比如文字)超过了单元格的宽度,可以通过换行来收缩其实际长度,以满足所有单元格不超出父容器的宽度。

2 android:stretchColumns

对应方法:setStretchAllCoulums(boolean)

说明:用来设置允许被拉伸的列,多个列号之间可以用“,”隔开。

比如说如果所有的列加起来都没有填充满父容器的宽度,就一可以通过将设置了该属性的单元格进行拉伸,来填满父容器。

3 android:collapseColumns

对应方法:setCollapseColumns(int,boolean)

说明:设置需要被隐藏的列,多个列号之间可以用“,”隔开。

被设置的列中所有行的单元格都会被隐藏。

注意:这里说的列号是从0开始的。

下面是demo和实际效果。

<TableLayout
    android:shrinkColumns="1"
    android:stretchColumns="2"
    android:collapseColumns="3"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!-- 第一行,一个Button独自占满了父组件 -->
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <!-- 用TableRow开辟新的行 -->
    <TableRow>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAllCaps="false"
            android:text="Hello" />
        <!-- 被收缩的列,多出来的文字会出现在下一行 -->
        <Button
            android:text="Hello world! My name is LemonDoor."
            android:textAllCaps="false"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <!-- 被拉伸的列,如果所有组件宽度小于父容器宽度,就会自动拉伸填满 -->
        <Button
            android:text="world"
            android:textAllCaps="false"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <!-- 被隐藏的列 -->
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAllCaps="false"
            android:text="You can‘t find me!" />
    </TableRow>
    <TableRow>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAllCaps="false"
            android:text="Hello" />
        <Button
            android:text="Hello world! My name is LemonDoor."
            android:textAllCaps="false"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <Button
            android:text="world"
            android:textAllCaps="false"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </TableRow>
</TableLayout>

收缩效果:

第二列中多出来的文字被挤到了下一行。

拉伸效果:

当所有单元格的宽度和小于父容器宽度,被拉伸列就会自动拉伸到填满父容器。

表格列数是由列数最多的行决定的:

附:引用声明

《疯狂Android讲义(第二版)》 李刚 《2.2.2 表格布局》 电子工业出版社

时间: 2024-10-01 04:23:35

Android UI之TableLayout(表格布局)的相关文章

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

前面学习了线性布局和相对布局,线性布局虽然方便,但如果遇到控件需要排列整齐的情况就很难达到要求,用相对布局又比较麻烦,为此Android系统中提供了表格布局. 一.认识TableLayout 表格布局就是让控件以表格的形式来排列控件,只要将控件放在单元格中,控件就可以整齐地排列,使用TableLayout标签. TableLayout继承了 LinearLayout,因此它的本质依然是线性布局管理器.每次向TableLayout中添加一个TableRow,该TableRow就是一个表格行,Tab

Android基础入门教程——2.2.3 TableLayout(表格布局)

Android基础入门教程--2.2.3 TableLayout(表格布局) 标签(空格分隔): Android基础入门教程 本节引言: 前面我们已经学习了平时实际开发中用得较多的线性布局(LinearLayout)与相对布局(RelativeLayout), 其实学完这两个基本就够用了,笔者在实际开发中用得比较多的也是这两个,当然作为一个好学的程序猿, 都是喜欢刨根问题的,所以虽说用得不多,但是还是有必要学习一下基本的用法的,说不定哪一天能用得上呢! 你说是吧,学多点东西没什么的,又不吃亏!好

android学习——TableLayout表格布局

TableLayout表格布局 TableLayout是指将子元素的位置分配到行或列中.Android的一个TableLayout有许多TableRow组成,每一个TableRow都会定义一个Row.TableLayout容器不会显示Row,Column,及Cell的边框线,每个Row拥有0个或多个Cell,每个Cell拥有一个View对象. 在使用tablelayout时,应注意每一个cell的宽度. 我们下面通过XML布局和Java代码布局两种方式分别举例: 一.XML方式布局 1.创建一个

从零开始学android&lt;Tablelayout表格布局.十五.&gt;

TableLayout就是将手机的屏幕分为一行行的形式进行数据的显示,并且一行可以多个控件 并且可以设置控件的对齐方式,和是否为可收缩行 下面通过一行图和一个简单的例子来看看Tablelayout布局的使用 ----------------------毫无美感的分割线---------------------- 单独使用xml文件进行配置 <?xml version="1.0" encoding="utf-8"?> <TableLayout xml

New UI-布局之TableLayout(表格布局)详解

New UI-布局之TableLayout(表格布局)详解  --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目录:http://b

2.2.3 TableLayout(表格布局)

本节引言: 前面我们已经学习了平时实际开发中用得较多的线性布局(LinearLayout)与相对布局(RelativeLayout), 其实学完这两个基本就够用了,笔者在实际开发中用得比较多的也是这两个,当然作为一个好学的程序猿, 都是喜欢刨根问题的,所以虽说用得不多,但是还是有必要学习一下基本的用法的,说不定哪一天能用得上呢! 你说是吧,学多点东西没什么的,又不吃亏!好了,扯淡就扯到这里,开始这一节的学习吧,这一节我们会学习 Android中的第三个布局:TableLayout(表格布局)!

布局Layouts之TableLayout表格布局

原文地址http://blog.csdn.net/jianghuiquan/article/details/8299970 TableLayout表格布局 TableLayout是指将子元素的位置分配到行或列中.Android的一个TableLayout有许多TableRow组成,每一个TableRow都会定义一个Row.TableLayout容器不会显示Row,Column,及Cell的边框线,每个Row拥有0个或多个Cell,每个Cell拥有一个View对象. 在使用tablelayout时

【转】TableLayout(表格布局)

转自:http://www.cnblogs.com/zhangs1986/archive/2013/01/17/2864536.html TableLayout(表格布局) 表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象.TableRow可以添加子控件,每添加一个为一列. TableLayout属性: android:collapseColumns:将TableLayout里面指定的列隐藏,若有多列需要隐藏,请用逗号将需要隐藏的列序号隔开.

TableLayout表格布局详解

1.TableLayout简介 2.TableLayout行列数的确定 3.TableLayout可设置的属性详解 4.一个包含4个TableLayout布局的实例及效果图 一.Tablelayout简介 Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件. 当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子控件占据一列. 当为View时,该View将独占一行. 二.TableLayout行列数的确定 Tabl

Layouts之TableLayout表格布局

TableLayout表格布局 TableLayout是指将子元素的位置分配到行或列中.Android的一个TableLayout有许多TableRow组成,每一个TableRow都会定义一个Row.TableLayout容器不会显示Row,Column,及Cell的边框线,每个Row拥有0个或多个Cell,每个Cell拥有一个View对象. 在使用tablelayout时,应注意每一个cell的宽度. 详情参考(转自):http://blog.csdn.net/jianghuiquan/art