Android TableLayout的使用
2017-03-02 11:18
447 查看
辛苦堆砌,转载请注明出处,谢谢!
之前做表单类型的界面,一直使用的是LinearLayout配合layout_weight的方式,今天无意中看到了TableLayout,发现做表单甚是好用,自己默守陈规,孤陋寡闻,不过在Android
API文档的布局一栏下,也没有看到google放置该布局的说明,原因不去考究了咱们只管用用,今天发文记录一下。
TableLayout用来将子视图按照行列的方式进行排布,其子视图可以是TableRow,也可以是单独的一个View类,此时该View类的控件独自占用一行。TableLayout的子视图不需要指定layout_width,其默认为match_parent,可以指定layout_height,不过其默认为wrap_content,所以一般也不需要指定。不过这里注意,由于TableLayout的layout_width为match_parent,我们TableRow下的View可以使用layout_weight的方式调整一行中各个单元格的宽度。
影响TableLayout布局的重要属性主要有三个,这三个属性值为逗号分隔的列索引值,索引值从0开始,也就是第一列索引为0,第二列索引为1,以此类推,用来控制列的行为:
android:collapseColumns:指定折叠起来的列,使用该属性指定的列会被折叠,目前我还没有用到它的时候,将来慢慢体会。
android:shrinkColumns:指定的列宽将被压缩为该列中最长的单元格的宽度
android:stretchColumns:指定的列宽会自动扩展,以占用该行剩余的空间
另外,我们可以将android:layout_span属性添加到一个View类上,以指明该控件占据的列数。
大概就是这些内容,下面给出一个列子,可能不太合适,但是只是为了演示TableLayout的使用,也基本足够了
可以看到,我们做表单省掉了很多的layout_width和layout_height,但是控件的分配还是比较协调的。当我们的表单比较大的时候,使用TableLayout可以很好地完成工作。
之前做表单类型的界面,一直使用的是LinearLayout配合layout_weight的方式,今天无意中看到了TableLayout,发现做表单甚是好用,自己默守陈规,孤陋寡闻,不过在Android
API文档的布局一栏下,也没有看到google放置该布局的说明,原因不去考究了咱们只管用用,今天发文记录一下。
TableLayout用来将子视图按照行列的方式进行排布,其子视图可以是TableRow,也可以是单独的一个View类,此时该View类的控件独自占用一行。TableLayout的子视图不需要指定layout_width,其默认为match_parent,可以指定layout_height,不过其默认为wrap_content,所以一般也不需要指定。不过这里注意,由于TableLayout的layout_width为match_parent,我们TableRow下的View可以使用layout_weight的方式调整一行中各个单元格的宽度。
影响TableLayout布局的重要属性主要有三个,这三个属性值为逗号分隔的列索引值,索引值从0开始,也就是第一列索引为0,第二列索引为1,以此类推,用来控制列的行为:
android:collapseColumns:指定折叠起来的列,使用该属性指定的列会被折叠,目前我还没有用到它的时候,将来慢慢体会。
android:shrinkColumns:指定的列宽将被压缩为该列中最长的单元格的宽度
android:stretchColumns:指定的列宽会自动扩展,以占用该行剩余的空间
另外,我们可以将android:layout_span属性添加到一个View类上,以指明该控件占据的列数。
大概就是这些内容,下面给出一个列子,可能不太合适,但是只是为了演示TableLayout的使用,也基本足够了
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp" tools:context="com.yjp.tablelayoutdemo.MainActivity"> <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:stretchColumns="1"> <TableRow> <TextView android:text="姓名" /> <EditText android:layout_span="2" android:hint="请输入姓名"/> </TableRow> <TableRow> <TextView android:text="年龄"/> <EditText android:layout_span="2" android:hint="请输入年龄"/> </TableRow> <TableRow> <TextView android:text="身份证" /> <EditText android:hint="请输入身份证号" /> <Button android:layout_width="40dp" android:layout_height="40dp" android:background="@android:drawable/ic_menu_camera"/> </TableRow> <TableRow> <TextView android:layout_gravity="center" android:text="户口类型"/> <RadioGroup android:orientation="horizontal" android:layout_span="2" android:layout_gravity="center"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="非农业户口"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="农业户口"/> </RadioGroup> </TableRow> </TableLayout> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:text="提交"/> </RelativeLayout>界面如图:
可以看到,我们做表单省掉了很多的layout_width和layout_height,但是控件的分配还是比较协调的。当我们的表单比较大的时候,使用TableLayout可以很好地完成工作。
相关文章推荐
- Android TableLayout中的使用说明
- android学习——使用TableLayout动态生成表格,并为tablerow中的列添加点击监听
- Android开发-使用TableLayout动态显示表格
- Android使用TableLayout动态布局实例(转)
- android 使用tablelayout设计一个 天气 表格显示
- 【Android UI】使用RelativeLayout与TableLayout实现登录界面
- Android使用TableLayout动态布局实例
- android表格布局TableLayout的使用
- [Android]使用二维表格实现 TableLayout 跨行(转)
- Android TableLayout中的使用说明
- Android框架之TableLayout的使用
- 【Android UI】使用RelativeLayout与TableLayout实现登录界面
- android 中使用TableLayout实现表单布局效果示例
- android 使用TableLayout 绘制表格
- android游戏开发框架libgdx的使用(二十二)—利用TABLELAYOUT进行布局
- Android TableLayout(表格布局) 使用介绍
- Android开发-使用TableLayout动态显示表格
- Android TableLayout中的使用说明
- android 使用TableLayout 实现布局自动拉伸宽度
- (转)android之TableLayout使用