zoukankan      html  css  js  c++  java
  • Android 自学之表格布局 TableLayout

    表格布局(TableLayout),表格布局采用行、列的形式来管理UI组件,TableLayout并不需要明确的声明多少行,多少列,而是通过TableRow、其他组件来控制表格的行数和列数。

    每次想TableLayout中添加一个TableRow,TableRow是一个表格行,也是容器;因此他也可以不断的添加组件,没添加一个组件就是增加一列。

    如果直接想TableLayout中添加组件的话,那么他就会独自占据一行的位置。

    在表格布局中,列的宽度取决于该列中最宽的那列的宽度,整个表格布局的宽度取决于父容器的宽度(默认是占满父容器本身)。

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

    Shrinkable:如果某列被设成这个属性的话,那么该列的所有单元格的宽度可以被收缩,以保证该表格适应父容器的宽度。

    Stretchable:如果某列被设成这个属性的话,那么该列的所有单元格的宽度可以被拉伸,以保证组件能完全填满表格空余空间。

    Collapsed:如果某列被设成这个属性的话,那么该列的所有单元格都会被掩藏。

    下面程序是采用TableLayout布局

    layout/main.xml

      1 <?xml version="1.0" encoding="utf-8"?>
      2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      3     android:orientation="vertical"
      4     android:layout_width="fill_parent"
      5     android:layout_height="fill_parent"
      6     >
      7 <!-- 定义第一个表格布局,指定第2列允许收缩,第3列允许拉伸 -->
      8 <TableLayout android:id="@+id/TableLayout01" 
      9     android:layout_width="fill_parent" 
     10     android:layout_height="wrap_content"
     11     android:shrinkColumns="1"
     12     android:stretchColumns="2"
     13 >
     14 <!-- 直接添加按钮,它自己会占一行 -->
     15 <Button android:id="@+id/ok1" 
     16     android:layout_width="wrap_content"
     17     android:layout_height="wrap_content"
     18     android:text="独自一行的按钮"
     19     />
     20 <!-- 添加一个表格行 -->
     21 <TableRow>
     22 <!-- 为该表格行添加3个按钮 -->
     23 <Button android:id="@+id/ok2" 
     24     android:layout_width="wrap_content"
     25     android:layout_height="wrap_content"
     26     android:text="普通按钮"
     27     />     
     28 <Button android:id="@+id/ok3" 
     29     android:layout_width="wrap_content"
     30     android:layout_height="wrap_content"
     31     android:text="允许被收缩的按钮"
     32     /> 
     33 <Button android:id="@+id/ok4" 
     34     android:layout_width="wrap_content"
     35     android:layout_height="wrap_content"
     36     android:text="允许被拉伸的按钮"
     37     />
     38 </TableRow>    
     39 </TableLayout>
     40 <!-- 定义第二个表格布局 ,指定第二列隐藏-->
     41 <TableLayout android:id="@+id/TableLayout01" 
     42     android:layout_width="fill_parent" 
     43     android:layout_height="wrap_content"
     44     android:collapseColumns="1"
     45 >
     46 <!-- 直接添加按钮,它自己会占一行 -->
     47 <Button android:id="@+id/ok5" 
     48     android:layout_width="wrap_content"
     49     android:layout_height="wrap_content"
     50     android:text=" 独自一行的按钮 "
     51     />
     52 <!--定义一个表格行-->
     53 <TableRow>
     54 <!-- 为该表格行添加3个按钮 -->
     55 <Button android:id="@+id/ok6" 
     56     android:layout_width="wrap_content"
     57     android:layout_height="wrap_content"
     58     android:text="普通按钮1"
     59     />     
     60 <Button android:id="@+id/ok7" 
     61     android:layout_width="wrap_content"
     62     android:layout_height="wrap_content"
     63     android:text="被隐藏的按钮"
     64     /> 
     65 <Button android:id="@+id/ok8" 
     66     android:layout_width="wrap_content"
     67     android:layout_height="wrap_content"
     68     android:text="普通按钮 3"
     69     />
     70 </TableRow>    
     71 </TableLayout>
     72 <!-- 定义第三个表格布局 ,指定第2、3两列可以被拉伸-->
     73 <TableLayout android:id="@+id/TableLayout01" 
     74     android:layout_width="fill_parent" 
     75     android:layout_height="wrap_content"
     76     android:stretchColumns="1,2"
     77 >
     78 <!-- 直接添加按钮,它自己会占一行 -->
     79 <Button android:id="@+id/ok9" 
     80     android:layout_width="wrap_content"
     81     android:layout_height="wrap_content"
     82     android:text="独自一行的按钮"
     83     />
     84 <!--定义一个表格行-->
     85 <TableRow>
     86 <!-- 为该表格行添加3个按钮 -->
     87 <Button android:id="@+id/ok10" 
     88     android:layout_width="wrap_content"
     89     android:layout_height="wrap_content"
     90     android:text="普通按钮"
     91     />     
     92 <Button android:id="@+id/ok11" 
     93     android:layout_width="wrap_content"
     94     android:layout_height="wrap_content"
     95     android:text="允许被拉伸的按钮"
     96     /> 
     97 <Button android:id="@+id/ok12" 
     98     android:layout_width="wrap_content"
     99     android:layout_height="wrap_content"
    100     android:text="允许被拉伸的按钮"
    101     />
    102 </TableRow>    
    103 <!--定义一个表格行-->
    104 <TableRow>
    105 <!-- 为该表格行添加2个按钮 -->
    106 <Button android:id="@+id/ok13" 
    107     android:layout_width="wrap_content"
    108     android:layout_height="wrap_content"
    109     android:text="普通按钮"
    110     />     
    111 <Button android:id="@+id/ok14" 
    112     android:layout_width="wrap_content"
    113     android:layout_height="wrap_content"
    114     android:text="允许被拉伸的按钮"
    115     />
    116 </TableRow>    
    117 </TableLayout>
    118 </LinearLayout>

    上面的代码里面我们用了三次TableLayout布局:

    第一个表格我们对第二列实现了收缩,第三列实现了拉伸;

    第二个表格我们对第二列实现了掩藏;

    第三个表格我们同时对第二、三列实现了拉伸。这些是这几个属性的使用方法

  • 相关阅读:
    ASP.NET MVC 重点教程一周年版 第二回 UrlRouting
    ASP.NET MVC 重点教程一周年版 第三回 Controller与View
    DynamicData for Asp.net Mvc留言本实例 下篇 更新
    Asp.net MVC视频教程 18 单选与复选框
    使用ASP.NET MVC Futures 中的异步Action
    ASP.NET MVC RC 升级要注意的几点
    ATL、MFC、WTL CString 的今生前世
    msvcprt.lib(MSVCP90.dll) : error LNK2005:已经在libcpmtd.lib(xmutex.obj) 中定义
    关于Windows内存的一些参考文章
    Windows访问令牌相关使用方法
  • 原文地址:https://www.cnblogs.com/Yang-jing/p/3745667.html
Copyright © 2011-2022 走看看