表格布局有TableLayout所代表,TableLayout继承了LinearLayout,因此他的本质依然是LinearLayout。

表格布局采用行、列的形式来进行管理,在使用的时候不需要声明多少行、多少列,而是通过添加TableRow、其他组件来控制表格的行数和列数。

每次向TableLayout添加一个TableRow,该TableRow就是一个表格行,同时TableRow也是容器,可以在其中不断的添加其他的组件,每添加一个子组件,该表格的列就增加一列

在表格布局管理器中,可以为单元格设置如下三种行为方式

  1. Shrinkable:如果某一列被设置为Shrinkable,那么该列的所有单元格的宽度可以被收缩,以保证该表格能适应父容器的宽度
  2. Stretchable:如果某一列被设置为Stretchable,那么该列的所有单元格的宽度可以被拉伸,以保证组件能全部填满表格空余控件
  3. Collapsed:如果某个列被设置为该属性,那么该列的所有单元格都会被隐藏

因为TableLayout继承了LinearLayout类,因此除了支持LinearLayout的全部属性外还支持下面的三个属性

XML属性

方法

说明

android:collapseColumns

setColumnCollapsed(int,boolean)

设置需要被隐藏的列的序号,多个使用都逗号隔开

android:shrinkColumns

setShrinkAllColumns(boolean)

设置允许被收缩的列的序号,多个使用逗号隔开

android:stretchColumns

setStretchAllColumns(boolean)

设置允许被拉伸的列的序号,多个使用逗号隔开

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical"
  6. tools:context="com.example.tablelayout.MainActivity" >
  7.  
  8. <!-- 第一个TableLayout,指定二列允许收缩,三列允许拉伸 -->
  9. <TableLayout
  10. android:id="@+id/tableLayout_one"
  11. android:layout_width="fill_parent"
  12. android:layout_height="wrap_content"
  13. android:shrinkColumns="1"
  14. android:stretchColumns="3">
  15.  
  16. <Button
  17. android:id="@+id/ok1"
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:text="独自一行的按钮"/>
  21. <TableRow>
  22. <Button
  23. android:id="@+id/ok2"
  24. android:layout_width="wrap_content"
  25. android:layout_height="wrap_content"
  26. android:text="普通按钮"/>
  27. <Button
  28. android:id="@+id/ok3"
  29. android:layout_width="wrap_content"
  30. android:layout_height="wrap_content"
  31. android:text="收缩按钮"/>
  32. <Button
  33. android:id="@+id/ok4"
  34. android:layout_width="wrap_content"
  35. android:layout_height="wrap_content"
  36. android:text="拉伸按钮"/>
  37. </TableRow>
  38. </TableLayout>
  39.  
  40. <!-- 第二个TableLayout,指定二列允隐藏-->
  41. <TableLayout
  42. android:id="@+id/tableLayout_two"
  43. android:layout_width="fill_parent"
  44. android:layout_height="wrap_content"
  45. android:collapseColumns="2">
  46.  
  47. <Button
  48. android:id="@+id/ok5"
  49. android:layout_width="wrap_content"
  50. android:layout_height="wrap_content"
  51. android:text="独自一行的按钮"/>
  52. <TableRow>
  53. <Button
  54. android:id="@+id/ok6"
  55. android:layout_width="wrap_content"
  56. android:layout_height="wrap_content"
  57. android:text="普通按钮"/>
  58. <Button
  59. android:id="@+id/ok7"
  60. android:layout_width="wrap_content"
  61. android:layout_height="wrap_content"
  62. android:text="收缩按钮"/>
  63. <Button
  64. android:id="@+id/ok8"
  65. android:layout_width="wrap_content"
  66. android:layout_height="wrap_content"
  67. android:text="隐藏按钮"/>
  68. </TableRow>
  69. </TableLayout>
  70.  
  71. <!-- 第三个TableLayout,指定二列允许拉伸,三列允许拉伸 -->
  72. <TableLayout
  73. android:id="@+id/tableLayout_three"
  74. android:layout_width="fill_parent"
  75. android:layout_height="wrap_content"
  76. android:shrinkColumns="1,2">
  77.  
  78. <Button
  79. android:id="@+id/ok9"
  80. android:layout_width="wrap_content"
  81. android:layout_height="wrap_content"
  82. android:text="独自一行的按钮"/>
  83. <TableRow>
  84. <Button
  85. android:id="@+id/ok10"
  86. android:layout_width="wrap_content"
  87. android:layout_height="wrap_content"
  88. android:text="普通按钮"/>
  89. <Button
  90. android:id="@+id/ok11"
  91. android:layout_width="wrap_content"
  92. android:layout_height="wrap_content"
  93. android:text="拉伸按钮"/>
  94. <Button
  95. android:id="@+id/ok12"
  96. android:layout_width="wrap_content"
  97. android:layout_height="wrap_content"
  98. android:text="拉伸按钮"/>
  99. </TableRow>
  100. </TableLayout>
  101. </LinearLayout>

Android布局管理器(表格布局)的更多相关文章

  1. android的布局管理器

    理论上通过setContentView(view)能够把一个view设置到activity中,但当你有很多个view控件的时候,就需要用android的布局管理器来管理view控件了. android ...

  2. android中常用的布局管理器(二)

    接上篇博客 (3)LinearLayout     线性布局管理器 线性布局管理器是将放入其中的组件按照垂直或水平方向来布局,每一行或每一列只能放一个组件,并且不会换行,当组件排列到窗体的边缘后,后面 ...

  3. 第1组UI组件:布局管理器

    1 布局管理的来源 为了让UI在不同的手机屏幕上都能运行良好----不同手机屏幕的分辨率/尺寸并不完全相同,如果让程序手动控制每个组件的大小.位置,会给编程带来巨大的麻烦.为了解决这个问题.andro ...

  4. 5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)

    5.Java-Swing常用布局管理器       应用布局管理器都属于相对布局,各组件位置可随界面大小而相应改变,不变的只是其相对位置,布局管理器比较难以控制,一般只在界面大小需要改是才用,但即使这 ...

  5. Java-Swing常用布局管理器

    http://www.cnblogs.com/hthuang/p/3460234.html   5.Java-Swing常用布局管理器       应用布局管理器都属于相对布局,各组件位置可随界面大小 ...

  6. JAVA布局管理器

    JAVA的界面布局原理:由于Java是跨平台语言,使用绝对坐标显然会导致问题,即在不同平台.不同分辨率下的显示效果不一样.Java 为了实现跨平台的特性并且获得动态的布局效果,Java将容器内的全部组 ...

  7. 面试题-Java基础-布局管理器

    1.什么是布局管理器? 布局管理器用来在容器中组织组件.

  8. Qt之布局管理器

    简述 Qt的布局系统提供了一个简单的和强有力的方式,来自动排列窗口子控件布局. 所有QWidget子类可以使用布局来管理他们的子控件.QWidget::setLayout()函数可以为一个控件布局.当 ...

  9. Android开发5:布局管理器2(表格布局TableLayout)

    版本:Android4.3 API18  学习整理:liuxinming 概念      TableLayout继承了LinearLayout,因此它的本质依然是线性布局管理器.      表格布局采 ...

随机推荐

  1. WebSocket能干啥

    ------这东西到底有什么用途,仔细看了说明,还是不明所以.楼上几位能不能介绍一下实际使用的场景?? 1.可以实现 服务器端(delphi&lazarus@win)<->手机端  ...

  2. [LeetCode#244] Shortest Word Distance II

    Problem: This is a follow up of Shortest Word Distance. The only difference is now you are given the ...

  3. jQuery.extend方法和开发中变量的复用

    最近在用commonJS规范进行客户端开发,遇到如下问题: 一般一个模块内部可能会定义一系列变量或一系列相关变量,比如写了一个颜色选择弹框模块大概会有如下变量定义 var settings = { / ...

  4. selenium资料

    来源 http://release.seleniumhq.org/selenium-remote-control/0.9.2/doc/dotnet/Selenium.ISelenium.MouseMo ...

  5. [转]让程序在崩溃时体面的退出之SEH

    原文地址:http://blog.csdn.net/starlee/article/details/6636723 SEH的全称是Structured Exception Handling,是Wind ...

  6. ADO数据库链接

    一.数据库操作准备 // --------------------------------------------------------------------------------------- ...

  7. redux-applyMiddleware实现理解+自定义中间件

    前言: 终于好好理解了middleware.... 1.redux middleware提供的是位于 action 被发起之后,到达 reducer 之前的扩展点. redux通过store.disp ...

  8. Ehcache专栏

    http://www.iteye.com/blogs/subjects/ehcache

  9. 【转】Android通过Wifi来调试你的应用

    http://stormzhang.com/android/2014/08/27/adb-over-wifi/ 在Android中调试我们经常要用一根USB数据线连接到手机和电脑,一方面麻烦不说,手机 ...

  10. Android中的FrameLayout帧布局

    帧布局由FrameLayout所代表,FrameLayout直接继承了ViewGoup组件. 帧布局容器为每一个增加当中的组件创建一个空白的区域(称为一个帧),每一个子组件占领一帧,这些帧都会依据gr ...