首页 理论教育 5.4.4 TableLayout(表格布局)

5.4.4 TableLayout(表格布局)

时间:2023-06-27 理论教育 版权反馈
【摘要】:TableLayout自然离不开行和列,它可以将子控件的位置分配到行或列中。Android系统的一个TableLayout由许多TableRow组成,每个TableRow都会定义一个Row。TableLayout容器并不会显示Row、Column或Cell的边框线。下面通过一个登录界面的实例,具体介绍TableLayout的使用。所幸的是TableLayout提供了android:strtchColumns属性,这个属性允许指定布局中某一列进行拉伸,以达到自适应屏幕的效果。图5-21表格布局的使用效果图5-22第二列拉伸后的表格布局效果R5-10TableLayout实例

5.4.4 TableLayout(表格布局)

TableLayout自然离不开行和列,它可以将子控件的位置分配到行或列中。Android系统的一个TableLayout由许多TableRow组成,每个TableRow都会定义一个Row。TableLayout容器并不会显示Row、Column或Cell的边框线。表格由行和列组成许多单元格,允许单元格为空。单元格不能跨列,这与HTML中不一样。列可以被隐藏,也可以被设置为伸展的,从而填充可利用的屏幕空间,也可以设置强制列收缩,直到表格匹配屏幕大小。

下面通过一个登录界面的实例,具体介绍TableLayout的使用。修改“activity_main.xml”文件的代码如下:

图5-20 帧布局的使用效果

R5-9 FrameLayout(帧布局)实例

从上面的代码可以看到,在TableLayout中一个TableRow表示在表格中添加一行,在TableRow中加入一个控件,就表示在该行中加入一列,并且在TableRow中不需要指定控件的宽度。在这个实例中,在第一行添加了一个TextView和一个输入用户名的EditText,在第二行添加了一个TextView和一个用于输入密码的EditText,输入密码的时候一般都会以“*”号显示,因此这里为EditText添加了android:inputType属性,并且将其指定为textPassword,这样就把当前的EditText控件变成了密码输入框。在第三行添加了一个Button控件,并且将其android:layout_span属性指定为2,表示该Button控件将占据两列的空间,这样既保证了表格结构的合理性,又保证了界面的美观。重新运行程序,效果如图5-21所示。(www.xing528.com)

从图5-21中不难发现,当前的界面并没有完全占据屏幕的宽度,在右侧还空出来一块区域,在TableRow中的控件是无法指定宽度的,那么如何解决这个问题呢?所幸的是TableLayout提供了android:strtchColumns属性,这个属性允许指定布局中某一列进行拉伸,以达到自适应屏幕的效果。修改:“activity_main.xml”文件的代码如下:

这里将android:stretchColumns属性的值指定为1,该属性表示如果表格不能完全占据屏幕宽度,就将其拉伸,将属性值指定为1表示将第二列拉伸。重新运行程序,效果如图5-22所示。

图5-21 表格布局的使用效果

图5-22 第二列拉伸后的表格布局效果

R5-10 TableLayout(表格布局)实例

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈