TableLayout 表格布局 实现展示ViewGroup内所有View

设计需求:

ViewGroup内有两个View,ViewA, ViewB,需要两个View全部展示在屏幕范围内的ViewGroup中,不允许ViewA的增长会使ViewB挤出屏幕,这就需要ViewB允许拉伸不允许收缩,并且ViewA允被收缩。

过程如下:

当ViewA缩小时,ViewB跟随拉伸:

如图所示:

当ViewA宽度过长,假设9000dp或者更大,ViewB因为不允许收缩,所以ViewB还原到设置width后保持不变,不会被挤出屏幕,ViewA自动收缩

如图所示:

抽象逻辑以后,要实现这种设计需求,就必须满足以上条件,这是如果使用LinerLayout,RelativeLayout,FrameLayout,因为没有拉伸缩放属性设置,很难实现需求。

此需求和Excel表格实现效果十分相似,所以想到TableLayout就可以完美解决问题,于是代码如下:

<TableLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:stretchColumns="1" //设置第一列允许被拉伸
            android:shrinkColumns="0"> //设置滴零列允许收缩
        <TableRow>

            <Button
                    android:id="@+id/btn01"
                    android:layout_width="9000dp"
                    android:layout_height="200dp"
                    android:background="@color/starfish_blue_normol"
                    android:text="允许被收缩\nViewA">
            </Button>

            <Button
                    android:id="@+id/btn02"
                    android:layout_width="120dp"
                    android:layout_height="200dp"
                    android:background="@color/red"
                    android:text="允许被拉伸\nViewB">
            </Button>
        </TableRow>
    </TableLayout>
时间: 2024-10-08 19:37:39

TableLayout 表格布局 实现展示ViewGroup内所有View的相关文章

布局Layouts之TableLayout表格布局

原文地址http://blog.csdn.net/jianghuiquan/article/details/8299970 TableLayout表格布局 TableLayout是指将子元素的位置分配到行或列中.Android的一个TableLayout有许多TableRow组成,每一个TableRow都会定义一个Row.TableLayout容器不会显示Row,Column,及Cell的边框线,每个Row拥有0个或多个Cell,每个Cell拥有一个View对象. 在使用tablelayout时

android学习——TableLayout表格布局

TableLayout表格布局 TableLayout是指将子元素的位置分配到行或列中.Android的一个TableLayout有许多TableRow组成,每一个TableRow都会定义一个Row.TableLayout容器不会显示Row,Column,及Cell的边框线,每个Row拥有0个或多个Cell,每个Cell拥有一个View对象. 在使用tablelayout时,应注意每一个cell的宽度. 我们下面通过XML布局和Java代码布局两种方式分别举例: 一.XML方式布局 1.创建一个

从零开始学android&lt;Tablelayout表格布局.十五.&gt;

TableLayout就是将手机的屏幕分为一行行的形式进行数据的显示,并且一行可以多个控件 并且可以设置控件的对齐方式,和是否为可收缩行 下面通过一行图和一个简单的例子来看看Tablelayout布局的使用 ----------------------毫无美感的分割线---------------------- 单独使用xml文件进行配置 <?xml version="1.0" encoding="utf-8"?> <TableLayout xml

New UI-布局之TableLayout(表格布局)详解

New UI-布局之TableLayout(表格布局)详解  --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目录:http://b

2.2.3 TableLayout(表格布局)

本节引言: 前面我们已经学习了平时实际开发中用得较多的线性布局(LinearLayout)与相对布局(RelativeLayout), 其实学完这两个基本就够用了,笔者在实际开发中用得比较多的也是这两个,当然作为一个好学的程序猿, 都是喜欢刨根问题的,所以虽说用得不多,但是还是有必要学习一下基本的用法的,说不定哪一天能用得上呢! 你说是吧,学多点东西没什么的,又不吃亏!好了,扯淡就扯到这里,开始这一节的学习吧,这一节我们会学习 Android中的第三个布局:TableLayout(表格布局)!

Android零基础入门第29节:善用TableLayout表格布局,事半功倍

前面学习了线性布局和相对布局,线性布局虽然方便,但如果遇到控件需要排列整齐的情况就很难达到要求,用相对布局又比较麻烦,为此Android系统中提供了表格布局. 一.认识TableLayout 表格布局就是让控件以表格的形式来排列控件,只要将控件放在单元格中,控件就可以整齐地排列,使用TableLayout标签. TableLayout继承了 LinearLayout,因此它的本质依然是线性布局管理器.每次向TableLayout中添加一个TableRow,该TableRow就是一个表格行,Tab

Android基础入门教程——2.2.3 TableLayout(表格布局)

Android基础入门教程--2.2.3 TableLayout(表格布局) 标签(空格分隔): Android基础入门教程 本节引言: 前面我们已经学习了平时实际开发中用得较多的线性布局(LinearLayout)与相对布局(RelativeLayout), 其实学完这两个基本就够用了,笔者在实际开发中用得比较多的也是这两个,当然作为一个好学的程序猿, 都是喜欢刨根问题的,所以虽说用得不多,但是还是有必要学习一下基本的用法的,说不定哪一天能用得上呢! 你说是吧,学多点东西没什么的,又不吃亏!好

【转】TableLayout(表格布局)

转自:http://www.cnblogs.com/zhangs1986/archive/2013/01/17/2864536.html TableLayout(表格布局) 表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象.TableRow可以添加子控件,每添加一个为一列. TableLayout属性: android:collapseColumns:将TableLayout里面指定的列隐藏,若有多列需要隐藏,请用逗号将需要隐藏的列序号隔开.

TableLayout表格布局详解

1.TableLayout简介 2.TableLayout行列数的确定 3.TableLayout可设置的属性详解 4.一个包含4个TableLayout布局的实例及效果图 一.Tablelayout简介 Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件. 当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子控件占据一列. 当为View时,该View将独占一行. 二.TableLayout行列数的确定 Tabl