`
jianweicao
  • 浏览: 117123 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android TableLayout 详解

 
阅读更多

转载自:http://blog.sina.com.cn/s/blog_63c66eb60100u29p.html

 

这篇博文包括的内容:

1、TableLayout简介

2、TableLayout行列数的确定

3、TableLayout可设置的属性详解

4、一个包含4个TableLayout布局的实例及效果图

 

一、Tablelayout简介

       Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件。

         当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子控件占据一列。

         当为View时,该View将独占一行。

二、TableLayout行列数的确定

           TableLayout的行数由开发人员直接指定,即有多少个TableRow对象(或View控件),就有多少行。

        TableLayout的列数等于含有最多子控件的TableRow的列数。如第一TableRow含2个子控件,第二个TableRow含3个,第三个TableRow含4个,那么该TableLayout的列数为4.

三、TableLayout可设置的属性详解

TableLayout可设置的属性包括全局属性及单元格属性。

1、全局属性也即列属性,有以下3个参数:

android:stretchColumns    设置可伸展的列。该列可以向行方向伸展,最多可占据一整行。

android:shrinkColumns     设置可收缩的列。当该列子控件的内容太多,已经挤满所在行,那么该子控件的内容将往列方向显示。

android:collapseColumns 设置要隐藏的列。

 

示例:

android:stretchColumns="0"           第0列可伸展

android:shrinkColumns="1,2"         第1,2列皆可收缩

android:collapseColumns="*"         隐藏所有行

说明:列可以同时具备stretchColumns及shrinkColumns属性,若此,那么当该列的内容N多时,将“多行”显示其内容。(这里不是真正的多行,而是系统根据需要自动调节该行的layout_height)

2、单元格属性,有以下2个参数:

android:layout_column    指定该单元格在第几列显示

android:layout_span        指定该单元格占据的列数(未指定时,为1)

示例:

android:layout_column="1"    该控件显示在第1列

android:layout_span="2"        该控件占据2列

说明:一个控件也可以同时具备这两个特性。

 

四、一个包含4个TableLayout布局的实例及效果图

 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:orientation="vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:padding="3dip" 
       > 
      
  <!-- 第1个TableLayout,用于描述表中的列属性。第0列可伸展,第1列可收缩,第2列被隐藏-->
       <TextView 
    android:text="表1:全局设置:列属性设置" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:textSize="15sp" 
    android:background="#7f00ffff"/> 
  <TableLayout        
    android:id="@+id/table1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:stretchColumns="0" 
    android:shrinkColumns="1" 
    android:collapseColumns="2" 
    android:padding="3dip"> 
    <TableRow> 
      <Button android:text="该列可伸展"/> 
      <Button android:text="该列可收缩"/> 
      <Button android:text="我被隐藏了"/> 
    </TableRow> 
    
    <TableRow> 
      <TextView android:text="我向行方向伸展,我可以很长       "/> 
      <TextView android:text="我向列方向收缩,我可以很深"/> 
    </TableRow>    
    
  </TableLayout> 
  
  <!-- 第2个TableLayout,用于描述表中单元格的属性,包括:android:layout_column 及android:layout_span-->
  <TextView 
    android:text="表2:单元格设置:指定单元格属性设置" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:textSize="15sp" 
    android:background="#7f00ffff"/>  
  <TableLayout 
    android:id="@+id/table2" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="3dip"> 
    <TableRow> 
      <Button android:text="第0列"/> 
      <Button android:text="第1列"/> 
      <Button android:text="第2列"/> 
    </TableRow> 
    
    <TableRow> 
      <TextView android:text="我被指定在第1列" android:layout_column="1"/> 
    </TableRow> 
      
    <TableRow> 
      <TextView 
        android:text="我跨1到2列,不信你看!" 
        android:layout_column="1" 
        android:layout_span="2" 
        /> 
    </TableRow> 
    
  </TableLayout>  
  
 <!-- 第3个TableLayout,使用可伸展特性布局-->
  <TextView 
    android:text="表3:应用一,非均匀布局" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:textSize="15sp" 
    android:background="#7f00ffff"/> 
  <TableLayout 
    android:id="@+id/table3" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:stretchColumns="*" 
    android:padding="3dip" 
    > 
    <TableRow> 
      <Button android:text="一" ></Button> 
      <Button android:text="两字"></Button> 
      <Button android:text="三个字" ></Button> 
    </TableRow> 
  </TableLayout> 
  
  <!-- 第4个TableLayout,使用可伸展特性,并指定每个控件宽度一致,如1dip-->
  <TextView 
    android:text="表4:应用二,均匀布局" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:textSize="15sp" 
    android:background="#7f00ffff"/> 
  <TableLayout 
    android:id="@+id/table4" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:stretchColumns="*" 
    android:padding="3dip" 
    > 
    <TableRow> 
      <Button android:text="一" android:layout_width="1dip"></Button> 
      <Button android:text="两字" android:layout_width="1dip"></Button> 
      <Button android:text="三个字" android:layout_width="1dip"></Button> 
    </TableRow> 
  </TableLayout> 
</LinearLayout> 
 

说明:第4个TableLayout里的均匀布局的均匀效果是有限的。其有限性体现在,当该行有N列,则每列的控件内容不能多于1/N。

运行效果图:(如图1)



 

  • 大小: 68.1 KB
分享到:
评论

相关推荐

    详解Android TableLayout表格布局

    3、TableLayout可设置的属性详解 4、一个包含4个TableLayout布局的实例及效果图 &lt;?xml version=1.0 encoding=utf-8?&gt; &lt;LinearLayout xmlns:android=http://schemas.android.com/apk/res/android android:...

    Android布局之表格布局TableLayout详解

    主要为大家详细介绍了Android布局之表格布局TableLayout,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Android 表格布局TableLayout示例详解

    本文主要介绍Android TableLayout布局,这里整理了TableLayout的资料,并附示例代码和实现效果图,有兴趣的小伙伴可以参考下

    详解Android TableLayout中stretchColumns、shrinkColumns的用法

    主要介绍了Android TableLayout中stretchColumns、shrinkColumns用法的相关资料,需要的朋友可以参考下

    Android四大布局详解

    详解android开发中的四大布布局的用法和注意点 LinearLayout,RelativeLayout,TableLayout,FrameLayout

    TableLayout_Calculator

    TableLayout详解+计算器实现 TableLayout嵌套使用 具体参见博文http://blog.csdn.net/a87b01c14/article/details/49472151

    Android核心技术与实例详解 PDF扫描版

    Android核心技术与实例详解 图书简介: 本书以Android应用程序的开发为主题 并结合真实的案例向读者详细介绍了Android的基本组件的使用及应用程序开发的整个流程 全书分为三篇共18章 第一篇以简单易懂的实例为依托 ...

    Android 五大布局方式详解

    表格布局(TableLayout):按照行列方式布局组件。 相对布局(RelativeLayout):相对其它组件的布局方式。  绝对布局(AbsoluteLayout):按照绝对坐标来布局组件。  1. 线性布局 线性布局是Android开发中最...

    Android基础知识详解

    TableLayout(表格布局) 28 RelativeLayout(相对布局) 31 AbsoluteLayout(绝对布局) 34 FrameLayout(框架布局) 34 Toast 36 Notification 38 对话框 42 一、带三个按钮的对话框 42 二、简单列表对话框、单选列表...

    一行代码使用TableLayout和CoordinatorLayout

    TabLayout和CoordinatorLayout相结合的依赖库,里边有demo可以参考修改,也可以来我的博客http://blog.csdn.net/huchengzhiqiang,找"TabLayout和CoordinatorLayout相结合的库的全面详解及修改"这篇博客

    Android列表组件ListView使用详解之动态加载或修改列表数据

    今天小编就为大家分享一篇关于Android列表组件ListView使用详解之动态加载或修改列表数据,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    android开发揭秘PDF

    4.3.4 表单布局(TableLayout) 4.3.5 切换卡(TabWidget) 4,4 小结 第5章 Android游戏开发 5.1 Android游戏开发框架 5.1.1 View类开发框架 5.1.2 SurfaceView类开发框架 5.2 Graphics类开发 5.5.1 Paint和Color类介绍...

    Android入门到精通源代码.

    6.2.4 表格布局(TableLayout) 6.2.5 绝对布局(AbsoluteLayout) 6.3 界面中的字体 6.3.1 设置系统字体 6.3.2 引用用户自定义字体 6.4 应用实例详解:制作手机桌面 6.4.1 实例分析 6.4.2 实例实现 第7章 Android中...

    Android开发——布局方式Demo源码

    Android布局详解实例,包含:线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)、表格布局(TableLayout)四大布局方式的demo

    《Android应用开发揭秘》附带光盘代码.

     4.3.4 表单布局(TableLayout)  4.3.5 切换卡(TabWidget)  4,4 小结  第5章 Android游戏开发  5.1 Android游戏开发框架  5.1.1 View类开发框架  5.1.2 SurfaceView类开发框架  5.2 Graphics类开发  5.5.1 ...

    Android应用开发揭秘pdf高清版

    4.3.4 表单布局(TableLayout) 4.3.5 切换卡(TabWidget) 4,4 小结 第5章 Android游戏开发 5.1 Android游戏开发框架 5.1.1 View类开发框架 5.1.2 SurfaceView类开发框架 5.2 Graphics类开发 5.5.1 Paint和Color类介绍...

Global site tag (gtag.js) - Google Analytics