本节主要介绍的是:以ViewGroup为基类派生的布局管理器

下面显示了android布局管理器的类图:

android应用的图形用户界面具有良好的平台无关性,就是使用布局管理器来管理组件的分布、大小,而不是直接设置组件的位置和大小。

1、LinearLayout类(线性布局):

可以将容器里的组件一个挨一个地排列起来,LinearLayout可以控制各组件的排列方式(横向或者纵向)。

下面显示了LinearLayout支持的XML属性以及相关的方法:

LinearLayout包含的子元素都受LinearLayout.LayoutParams控制,

LinearLayout.LayoutParams子元素支持的常用XML属性及相关方法:

2、TableLayout类(表格布局):

TableLayout继承了LinearLayout,它的本质还是线性布局管理器,TableLayout采用行、列的形式来管理UI组件,TableLayout并不需要明确包含多少行、多少列,而使通过添加TableRow等其他组件来控制表格的行数和列数。

在表格布局中,列的宽度由该列中最宽的那个单元格决定,整个表格的布局宽度则取决于父容器的宽度(默认情况下是占满父容器本身)

在TableLayout中,可以设置单元格如下行为方式:

Shrinkable:某列被设置为Shrinkable,该列的所有单元格的宽度可以被收缩,以保证表格能够适应父容器的宽度。

Stretchable:某列被设置为Stretchable,该列的所有单元格宽度可以被拉伸,保证组件能完全填满表格空余空间。

Collapsed:某列被设置为Collapsed,该列的所有单元格会被隐藏。

TableLayout继承了LinearLayout,它完成可以支持LinearLayout所支持的全部XML属性,除此之外,TableLayout支持如下属性:

对于列序号,我们通常从0开始,0代表第一列,1代表第2列,依次下去。。。

3、FrameLayout类(帧布局):

从开始的布局管理器类图可以知道,FrameLayout直接继承于ViewGroup。

FrameLayout为每个加入其中的组件创建一个空白的区域,每个子组件占据一帧,这些帧会根据gravity属性执行自动对齐。

FrameLayout常用的XML属性及向光方法:

FrameLayout包含的子元素也受FrameLayout.LayoutParams控制,博客中给出了FrameLayout的对应“霓虹灯效果”的例子。

4、RelativeLayout类(相对布局):

相对布局容器内子组件的位置总是相对兄弟组件、父容器来决定的,这种布局方式称为相对布局。

例:A组件的位置是由B组件的位置来决定的,则要求先定义B组件的位置,再定义A组件。

RelativeLayout支持的XML属性如下:

为了控制RelativeLayout布局中子组件的布局分布,RelativeLayout提供了一个内部类:RelativeLayout.LayoutParams,该类提供大量XML属性控制布局分布:

下面是RelativeLayout.LayoutParams设置为true、false的XML属性

下面是RelativeLayout.LayoutParams设置为其他UI组件ID的属性:

除此之外,RelativeLayout.LayoutParams还继承了android.view.ViewGroup.MarginLayoutParams,则RelativeLayout布局容器中每个子组件可以指定为android.view.ViewGroup.MarginLayoutParams所支持的XML属性。

5、GridLayout类(网格布局):

这是android4.0新增的布局管理器,需要在android4.0之后的版本中才可以使用。

GridLayout作用类似于HTML中的table标签,把整个容器划分成rows*columns个网格,每个网格可以放置一个组件,也可以设置一个组件横跨多少列、一个组件纵跨多少行。

下面列出了GridLayout常用的XML属性以及相关的方法:

为了控制GridLayout布局容器中各子组件的布局分布,GridLayout提供了一个内部类:GridLayout.LayoutParams,该类提供了一些XML属性来控制GridLayout布局容器中子组件的布局分布:

6、AbsoluteLayout类(绝对布局):

绝对布局就是空布局,即android不提供任何布局控制,而是由开发人员自己通过X坐标、Y坐标来控制组件的位置。当使用AbsoluteLayout作通ky"http://www.it165.net/qq/" target="_blank" class="keylink">qqyvL7WyN3G98qxo6yyvL7WyN3G97K71Nm53MDt19PX6bz+tcTOu9bDoaK089Cho6zV4tCptrzSqr+qt6LIy9Sx19S8ur/Y1sahozwvcD4KPHA+yrnTw774ttSyvL7WtcRYTUzK9NDUo7o8L3A+CjxwPmxheW91dF94o7rWuLaouMPX6bz+tcRY1/ix6jwvcD4KPHA+bGF5b3V0X3mjuta4tqi4w9fpvP61xFnX+LHqPC9wPgo8cD5BYnNvbHV0ZUxheW91dLK7ysfSu7j2usPLvMK3o6zS8s6q1MvQ0GFuZHJvaWSzzNDytcTK1rv6x6ey7s3ysfCjrLj31tayzsr9us3Q1MTctryyu82so6xBYnNvbHV0ZUxheW91dLrcxNG85rnLsrvNrMbBxLu089Chus231rHmwsq1xM7KzOKjrMv50tRBYnNvbHV0ZUxheW91dNLRvq25/cqxoaM8YnI+CjwvcD4KPHA+z8LD5r3pydzSu8/CYW5kcm9pZNbQs6PTw7XEvuDA67WlzrujujwvcD4KPHA+PGltZyBzcmM9"http://www.it165.net/uploadfile/files/2014/0409/20140409172435377.jpg" alt="">

XM7 FOR ANDROID,Android-UI组件(一):布局管理器相关推荐

  1. 【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity

    问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...

  2. Android中所有UI组件基类是,【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity...

    问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...

  3. Android中常见五种布局管理器——RelativeLayout、LinearLayout、FrameLayout、TableLayout、GridLayout

    目录 布局管理器 RelativeLayout 常见属性 Relative的实践操作(实现软件更新界面) LinearLayout 常见属性 LinearLayout的实践操作(模范登录以及微信底部) ...

  4. Android中的6大布局管理器

    文章目录 6大布局管理器详解 1. LinearLayout 线性布局管理器 2. TableLayout 表格布局管理器 3. GridLayout 网格布局管理器 ~~~~~~~~~~~~~~~~ ...

  5. JAVA桌面UI编程之布局管理器

    布局管理器 为了跨平台java引入了布局管理器来管理界面,JAVA一共有6种布局管理器,下面是介绍 BorderLayout 界面分东西南北中5个方向,最多只能显示5个控件,默认放入中间,下面的程序将 ...

  6. java/05/(Swing包)窗体,组件,布局管理器,面板,监听事件

    java/05/Swing包(窗体) Swing特点: 原来的AWT组件来自java.awt包,当含有AWT组件的java应用程序在不同的平台上执行时,每个平台的GUI组件的显示会有所不同,但是在不同 ...

  7. Java之GUI图形界面( Swing、容器组件、 布局管理器、常用容器、常用组件)

    目录 Swing概述 容器和组件 常用容器 JFrame: JPanel : 常用组件 JLabel 标签: JTextField 单行文本: JTextArea 多行文本框: JPasswordFi ...

  8. 疯狂Android讲义(二)——第二部分:第1组UI组件(布局管理器)

    一.第1组UI组件:布局管理器 Android 的界面组件比较多,不利于掌握它们内在的关系.为了帮助读者更好地掌握Android界面组件的关系,本书将会把这些界面组件按照它们的关联分析,分为几组进行介 ...

  9. Android 布局管理器

    布局管理器:控制组件是如何摆放的. 5种常用的布局管理器: RelativeLayout,相对布局管理器 LineraLayout,线性 FrameLayout,帧 TableLayout,表格 Gr ...

  10. Android精讲--界面编程2(布局管理器)

    为什么需要布局管理器 为了更好地管理Android应用的用户界面里的各种组件,Android提供了布局管理器.通过使用布局管理器,Android应用的图形用户界面具有良好的平台无关性.通常来说,推荐使 ...

最新文章

  1. 嵌入式系统 Boot Loader 技术内幕-目前看到介绍Boot loader最通俗明了的文章
  2. Coursera课程Python for everyone:Quiz: Networks and Sockets
  3. DayDayUp:分析“普通人”如何逐步走上食物链顶端(看那些成名史案例,有感而发)
  4. 【学习笔记】FI-AR模块概述
  5. 配置nginx/apache的404状态码来申请百度闭站保护
  6. 面试准备——Struts2相关问题
  7. 计算机玩游戏不能全屏,玩游戏屏幕两边有黑条?教你简单几步轻松解决-win7玩游戏不能全屏...
  8. C语言 字符串大小写转换
  9. css连续的纯数字或字母强制换行
  10. axios安装_一起学Vue:访问API(axios)
  11. python取两个列表的并集、交集、差集
  12. 创建一个二维数组,以4行4列左对齐的方式将数组输出
  13. 走遍中国《中国古镇全集》
  14. Oblivion Sound Lab Hex Drum Mac - 虚拟鼓声乐器
  15. 算法笔记_二分查找/斐波那契查找
  16. VRCORE开发者大赛圆满落幕,中国虚拟现实内容大集结
  17. 小学生计算机编程题,真题|小学组倒数第二道编程题,做不出来罚你点赞三遍!...
  18. 知名卸载软件Revo Uninstaller Pro挑战Deep Freeze卸载动画视频教程
  19. 星级评价的代码php,JavaScript_使用jQuery实现星级评分代码分享,前面有一篇原生js实现星级评 - phpStudy...
  20. obj-c中Autorelease、属相定义Property、对象的操作

热门文章

  1. es - elasticsearch 自定义分析器 - 内建分词过滤器 - 11
  2. [Flash][AS3]常用功能封装
  3. 【设计模式】五种创建者模式
  4. 艾默生流量计应采取耐磨的轻质材料制作减少影响
  5. 广东迅视看社保迎来5个变化!
  6. READONLY You can‘t write against a read only replica.
  7. 我们开源了一个轻量的 Web IDE UI 框架 - Molecule
  8. 支付架构调用流程以及常见支付问题解决方案
  9. Android 常用限定符
  10. Tomcat 警告之“资源添加到Web应用程序[]的缓存中,因为在清除过期缓存条目后可用空间仍不足 - 请考虑增加缓存的最大空间”