推荐于2016-04-06 · 知道合伙人软件行家
可以通过Tablelayout布局的layout_span属性实现,layout_span指定该单元格占据的列数
1、Tablelayout简介
Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件。当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子控件占据一列。 当为View时,该View将独占一行。
2、TableLayout行列数的确定
TableLayout的行数由开发人员直接指定,即有多少个TableRow对象(或View控件),就有多少行。
TableLayout的列数等于含有最多子控件的TableRow的列数。如第一TableRow含2个子控件,第二个TableRow含3个,第三个TableRow含4个,那么该TableLayout的列数为4.
3、TableLayout可设置的属性详解
TableLayout可设置的属性包括全局属性及单元格属性。
单元格属性,有以下2个参数:
android:layout_column 指定该单元格在第几列显示
android:layout_span 指定该单元格占据的列数(未指定时,为1)
示例:
android:layout_column="1" 该控件显示在第1列
android:layout_span="2" 该控件占据2列
4、一个TableLayout布局的实例
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="3dip"
>
<!-- 1个TableLayout,用于描述表中单元格的属性,包括:android:layout_column 及android:layout_span-->
<TextView
android:text="表:单元格设置:指定单元格属性设置"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="15sp"
android:background="#7f00ffff"/>
<TableLayout
android:id="@+id/table2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="3dip">
<TableRow>
<Button android:text="第0列"/>
<Button android:text="第1列"/>
<Button android:text="第2列"/>
</TableRow>
<TableRow>
<TextView android:text="我被指定在第1列" android:layout_column="1"/>
</TableRow>
<TableRow>
<TextView
android:text="我跨1到2列,不信你看!"
android:layout_column="1"
android:layout_span="2"
/>
</TableRow>
</TableLayout>
1、表格行、列固定的,你每个单元格当成一个TextView,中间的表格线也是TextView,你懂得。像最左侧的合并3行的单元格可以用线性布局为控制。
2、表格列数不定的,表头用TextView做好固定的,下边放一个ListView,ListView的每一行用固定的格式,格式文件的写法同上。
明白吧,有不明白的我再补充。
我的QQ1802798025,欢迎讨论。项目有保密协议,我不敢发。我们可以QQ上讨论。
ListView对每一行显示的内容也是通过一个XML布局显示的,你这个表格,一周中的某一天对应着3行,而这3行是重复7次,你可以把这重复的内容写成一个XML,然后在ListView的Adapter里往进放对应的数据。