表格布局
上代码
发现我们加入的Button明明是wrap_content的宽高,但是却占据了整个一行
显然是由于TableLayout导致的
如果直接在TableLayout下面写入控件,那么这个控件默认占据一行的大小
假如我想要多个控件占用一行怎么办呢?
这个时候需要结合TableRow进行使用
一对TableRow标签就代表一行,在里面写入的控件就都显示在一行中(如果这一行里面写入的控件过多,那么超出的部分就被吞了显示不出来了)
collapseColumns:设置隐藏列的序号,这里序号就和java中数组一样,第0个序号表示第一个,也可以用逗号隔开,同时隐藏多列
如果把第一行的俩个按钮都隐藏了,会咋样?
第一行直接就没了
而且这一旦隐藏就会直接把所有在TableRow里面相应的列全都隐藏,后面的同理
注:只是被隐藏,而不是被删除了,所以虽然不显示了,但是被隐藏的那个序号还是会代表它自己,所以如果你拉伸了隐藏的那个,会看不见效果
stretchColumns:拉伸
注:这里拉伸也是一拉就拉所有TableRow里面相应的列,但是要注意,只有在所有的TableRow中都有空间可供拉伸的时候才能拉,比如有一个TableRow已经挤满了,其他的都有空间,那也一个都拉不了
注:隐藏之后,空间会腾出来
shrinkColumns:收缩,同理
我们先删掉第六个按钮,再收缩第一个
虽然很挤,但是第五个按钮完整显示出来了
那假如我们原本就不挤呢?我们再把第五个按钮删了试试
发现一个都不缩了
可见,收缩的时候,必须至少要有一行控件太多,超出了屏幕才会收缩
再来看看子控件的设置属性
layout_column:设置显示在第几列
注:默认显示在第0列,如果我们设置了后,其他同一行的子控件也会依次排在它后面
而且可见,第二个按钮就算layout_column="0"了,也不行,只能乖乖呆在第一个按钮后面
但是它可以往后排
加个按钮
发现老三被老二挤出去了
layout_span:横向跨几列