Android布局之表格布局[通俗易懂]

Android布局之表格布局[通俗易懂]表格布局(Tablelayout) 简介:       Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件。     当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子控件占据一列。     当为View时,该View将独占一行。表格布局是以行和列的形式来对控件…

大家好,又见面了,我是你们的朋友全栈君。

表格布局(Tablelayout)

 

简介:   

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

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

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

表格布局是以行和列的形式来对控件进行管理的,所以我们来说说表格布局对行和列的确定

TableLayout的行数

在开发中由我们来直接指定,就是说有多少个TableRow对象或view控件就会有多少行。

TableLayout的列数

等于含有最多子控件的TableRow的列数。如第一(行)TableRow含2个子控件,第二(行)TableRow含3个,第三(行)TableRow含4个,那么这个表格布局的列数就是4列。

 

TableLayout可设置的属性

 表格布局可以设置的属性有两种:全局属性、单元格属性。

 

全局属性(列属性):  全局属性有三个属性

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

  Android:shrinkColumns      设置可收缩的列。(当该列子控件里的内容太多,行内显示不完的时候会向列的方向显示内容)。

  Android:collapseColumns  设置要隐藏的列。

下面就来举例说明一下:

Android:stretchColumns=”0″           第0列可伸展

Android:shrinkColumns=”1,2″         第1,2列皆可收缩

Android:collapseColumns=”1″         隐藏第一行

 

单元格属性:  单元格属性有两个属性

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

Android:layout_span        指定该单元格占据的列数(如果我们在使用中没有指定,那么默认值将为1)

下面就来举例说明一下:

Android:layout_column=”1″    该控件在第1列

Android:layout_span=”2″        该控件占了2列

 

下面我们来整体运用一下表格布局里的属性(代码和效果图):

<?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="第一个表格:全局设置:列属性设置"
        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="第二个:单元格设置:指定单元格属性设置"
        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="第1列"/>
            <Button android:text="第2列"/>
            <Button android:text="第3列"/>
        </TableRow>

        <TableRow>
            <TextView android:text="指定在第2列" android:layout_column="1"/>
        </TableRow>

        <TableRow>
            <TextView
                android:text="第二列和第三列!!!!!!!!!!!!"
                android:layout_column="1"
                android:layout_span="2"
                />
        </TableRow>

    </TableLayout>

    <!-- 第3个TableLayout,使用可伸展特性布局-->
    <TextView
        android:text="第三个表格:非均匀布局,控件长度根据内容伸缩"
        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>

 

Android布局之表格布局[通俗易懂]

说完了怎么用,咱们再来说说表格布局的优点和缺点:

 

优点:

1、结构位置更简单 

2、容易上手 

3、 数据化的存放更合理。

例如,学生信息这样的表,相对简单,如果用别的布局的话就比较麻烦信息也比较杂乱。

缺点:

1、 标签结构多,代码复杂 

2、 表格布局,不利于搜索引擎抓取信息
 

 

 

这就是Android常用布局中的表格布局啦~

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146261.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 完全二叉树与满二叉树的区别(有图)[通俗易懂]

    完全二叉树与满二叉树的区别(有图)[通俗易懂]先看图:完全二叉树:设二叉树的深度为h,除第h层外,其它各层(1~h-1)的结点数都达到最大个数,第h层所有的结点都连续集中在最左边满二叉树:深度为k且有2^k-1个结点的二叉树称为满二叉树

    2022年7月13日
  • ETL的开发过程[通俗易懂]

    ETL的开发过程[通俗易懂]在生产环境中,使用shell脚本完成一次etl操作1.定义一个etl函数,里面传入json行数据,用json.loads加载行数据,并对行数据进行判断,如果没有行数据,或data字段没有在行数据里,就直接返回空的结果,否则就继续往下执行2.接着获取行里的数据,用for循环判断,如果包含某个值,我就将变量赋值取出,装在集合容器里3.设置sparksession会话,并ena…

    2022年5月23日
  • scope 前缀开头的方法

    scope 前缀开头的方法

    2021年11月7日
  • 【自然语言处理】知识图谱之知识推理「建议收藏」

    【自然语言处理】知识图谱之知识推理「建议收藏」1.知识推理的分类归纳推理归纳推理所推出的结论是没有包含在前提内容中的。由个别事物推出一般性的知识的过程,是以为增殖新知识的过程。演绎推理:在已知领域内的一般性知识的前提下,通过求解一个具体的问题,或者证明一个结论的正确性。它所得出的结论,实际上早已蕴含在一般性的知识的前提中。演绎推理只是将已有的事实揭露出来,因此不能增殖新的知识。确定性推理多数时候是指逻辑推理,具有…

    2022年5月24日
  • latex求和符号上下标_latex中高阶无穷小符号

    latex求和符号上下标_latex中高阶无穷小符号\sum_{}^{}例如\sum_{k=0}^{\infty}x^k∑k=0∞xk\sum_{k=0}^{\infty}x^kk=0∑∞​xk

    2022年10月12日
  • HOOK消息钩子

    HOOK消息钩子大致的过程是当系统I/O上发生一个事件时,系统捕获该事件,并向指定的应用程序的消息队列发送一个消息,应用程序从消息队列中顺次取出一个消息,交由系统调度相应的窗口回调程序进行消息处理。这里可以看到,从OS捕捉到消息开始处理,到最后交还给OS调度回调函数,就像走了一个循环,我自己理解这也是为什么叫做“回调函数”的原因之一。接下来我们要进行的HOOK就是在上面的第二步和第三步之间进行的额外工作。钩子机制允许应用程序截获(且或)处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把

    2022年7月26日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号