TableLayout表格布局详解

简介:

一、Tablelayout简介

      Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件。当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子控件占据一列。 当为View时,该View将独占一行。

二、TableLayout行列数的确定(最大的原则)

     TableLayout的行数由开发人员直接指定,即有多少个TableRow对象(或View控件),就有多少行。TableLayout的列数等于含有最多子控件的TableRow的列数。如第一TableRow含2个子控件,第二个TableRow含3个,第三个TableRow含4个,那么该TableLayout的列数为4. 

三、TableLayout可设置的属性详解

总体了,这个TableLayout的属性和html中Table标签的属性差不多。他的各个属性如下:

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
                    android:id="@+id/MorePageTableLayout_Favorite"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:shrinkColumns="0"
                    android:stretchColumns="0" >

                    <TableRow
                        android:id="@+id/more_page_row0"
                        android:layout_width="fill_parent"
                        android:layout_marginLeft="2.0dip"
                        android:layout_marginRight="2.0dip"
                        android:background="@drawable/more_item_press"
                        android:paddingBottom="16.0dip"
                        android:paddingTop="8.0dip" >

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="fill_parent"
                            android:drawableLeft="@drawable/mylike"
                            android:drawablePadding="10.0dip"
                            android:gravity="center_vertical"
                            android:includeFontPadding="false"
                            android:paddingLeft="17.0dip"
                            android:text="我的京东"
                            android:textColor="#ff333333"
                            android:textSize="16.0sp" />

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="fill_parent"
                            android:layout_gravity="right"
                            android:gravity="center_vertical"
                            android:paddingRight="20.0dip"
                            android:src="@drawable/ic_arrow" />
                    </TableRow>
                </TableLayout>

其运行的相应效果图如下:

总结,一般TableLayOut的布局方式是使用较少的,但是像上面设置界面,TableLayout布局非常有用的。


目录
相关文章
|
9月前
|
数据处理 索引 Python
用Python实现数据录入、追加、数据校验并生成表格
本示例展示了如何使用Python和Pandas库实现学生期末考试成绩的数据录入、追加和校验,并生成Excel表格。首先通过`pip install pandas openpyxl`安装所需库,然后定义列名、检查并读取现有数据、用户输入数据、数据校验及保存至Excel文件。程序支持成绩范围验证,确保数据准确性。
353 14
|
设计模式 数据可视化 架构师
从UML类图关系到依赖注入(IoC)
从UML类图关系到依赖注入(IoC)
382 0
从UML类图关系到依赖注入(IoC)
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
327 0
|
关系型数据库 MySQL Unix
【MySQL用法】MySQL 中 datetime 和 timestamp 的区别与选择
【MySQL用法】MySQL 中 datetime 和 timestamp 的区别与选择
929 0
|
数据库连接 PHP 数据库
PHP中创建自定义函数以简化日常任务
【8月更文挑战第31天】在PHP编程中,自定义函数是提升代码重用性和清晰度的关键。本文将引导你了解如何创建和使用自定义函数,以及它们如何帮助你的日常开发工作变得更加高效。我们将通过具体案例探讨函数的构建,参数传递,返回值处理,并展示如何通过自定义函数简化复杂任务和减少冗余代码。
LeetCode 429. N-ary Tree Level Order Traversal
给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
125 0
LeetCode 429. N-ary Tree Level Order Traversal
|
搜索推荐 安全 Linux
docker的离线安装以及本地化配置
docker的离线安装以及本地化配置
1051 0
|
关系型数据库 数据库 PostgreSQL
postgresql动态赋予用户库,表权限
postgresql动态赋予用户库,表权限
597 0
postgresql动态赋予用户库,表权限
|
开发工具 git
git ammend知识点小结
在实际使用git的过程中,难免会存在手误的场景,比如 git commit之后,发现提交的描述信息不太合适,想调整一下;或者发现本地有多个零碎未提交的commit,想合并成一个提交... 当我们出现这些需求场景的时候,可以考虑使用git commit --amend来实现
653 0
git ammend知识点小结

热门文章

最新文章