老王讲IT——第九章
Android应用开发——TableLayout
这节课我们来学习tablelayout 表格布局 ,对于学习android来说我们还是
直接上代码来看它的效果是什么样子的。(创建一个项目)
一、常规使用
tablelayout:设置宽高属性(不设置布局),然后我们在tablelayout这个容器里面放一个button,然后设置宽高warpcontent,然后设置一个文本内容:android:text“第一个”,
这个时候我们发现我们布局的效果,我们发现我们的这个button整个占用了一行,但是我们实际上知道,我们的button正常设置成warp content它的大小只有这么大:
所以显然这一个显示是由我们的table layout导致的。这也是我们表格布局它的一个特征。
如果说你直接在table layout中直接写入控件,那么这个控件它占用一行的大小。
比方说我们再来一个button:文本改成第二个
是不是直接排在了我们的第二行。所以说你这样写的时候,一个控件就占用一行。
假如我想要多个控件占用一行,该怎么样呢:
这个时候我们就需要结合这个tablerow去进行一个使用:
Tablerow这个标签它表示一行 ,那么我们在tablerow这个标签里面添加的控件,
那么就都会放在我们tablerow这一行里面。比方说在这块我们把button复制放在这个tablerow里面。
如果想在添加一行tablerow:直接再写一行tablerow就好了:tablelayout它一般是和tablerow结合去使用的
那比方说我们在这里面多放几个button会是什么样子,这个时候我们的宽度超过了我们整个一行的大小,那么这个时候它不会自动换行,它是超出来的位置直接不显示。
这是我们的tablerow和tablelayout这个表格布局一个常规使用。
二、接着我们来看一看它的几个常见属性的使用
androld:collapseColums 设置需要被隐配的列的序号,从o开始 androld:streschColumns 说置允许被拉伸的列的列序号。从o开始 androId:shrinkColumns 设置允许被收缩的列的列序号。从o开始 子控件设置属性: androld:layout_column 显示在第几列 android:layout_span 横向跨几列
1、设置需要被隐藏的列的序号,从0开始列,比方说我们的第二行,总共数的话就是有五列,那么第一个按钮,它所在的序号就是第0个,接着隐藏一下:android:collapsecolumns=”0”
我写0的话,我的第一个按钮,序号为0的是不就隐藏起来了。
假如我想要隐藏多列呢,我们写个0,2,3就可以了。
这个时候是不是我的第一个按钮和第三个按钮隐藏起来了。这个就是我们collapscolumns的一个使用。
接着我们来看下第二个属性:android:stretchColumns这个是设置允许被拉伸的列的列序号,也是从0开始,我们直接来用一下。那么这一个拉伸的话大家要注意,就是说拉伸需要有可以拉伸的位置。比方说我拉伸第一个:
是不是变长了?那我把隐藏去掉呢?我们的这一个按钮就没有被拉伸。
因为这个时候你的每一列已经是达到一个最大值了。所以说你拉伸不了,
所以说我们的这一个拉伸一定要是存在一个剩余空间。比方说:
因为这有剩余的空间。所以说你拉伸的时候就是占用的剩余空间:
接着我们来看第三个属性。android:shrinkColumns 设置允许被收缩的列的列序号,从o开始。
那么我们这一个的话我们把前面两个给它删掉,那么收缩它是干嘛的呢比方说我们的第五个按钮没有显示全,那么我这设置一个收缩看看是什么效果。android:shrinkColumns=“1” 收缩第二个按钮
这时候我们第二个按钮就收缩了,第五个按钮显示全了。当然这样一个情
况其实也是一样的,超出我们这个行的一个宽度,这个时候你收缩才是管
用的,比方说我把第五个按钮删掉:
大家可以看到我现在虽然第二个按钮也设置了收缩,但是第二个会收缩吗?
不会。所以说这个收缩也是有一定条件的。这是我们需要注意的三个属性。
三、子空间属性
android:layout_column 显示在第几列 android:layout_span 横向跨几列
那么这两个是什么意思呢?我们来看一下:比方说我们这两个按钮:
第一个按钮它一设置,肯定就是在第0列去显示的。但是现在我不想这样。
我改一下,我想让它在第二列去进行显示:android:layout_column=“2”
我直接写个2,它就在我们的第二列去显示了:
所以这个layout_column它是默认在第0列显示。如果你自己去设置,写啥就是啥。后边就是依次排在它的后面去显示。这个就是layout_column它的一个作用。
还有layout_span它是横向跨几列,那么这一个比方说我们这:我想要让它跨两列:android:layout_span=“2”
总结:实际上我们把这个tablelayout看作是我们平常的一个Excel表格,这种布局设置实际上就是一样的了。也就是说我们放这个控件的时候,你想让它放在哪一列你就把它放在哪一列。你想让这个控件占用几行就占用几行。这些就是我们tablelayout它的一个布局。