1 布局管理的来源

为了让UI在不同的手机屏幕上都能运行良好----不同手机屏幕的分辨率/尺寸并不完全相同,如果让程序手动控制每个组件的大小、位置,会给编程带来巨大的麻烦。为了解决这个问题。android提供了布局管理器。布局管理器可以根据运行平台来调整组件大小,程序员要做的只是为容器选择合适的布局管理器。

2 布局管理类关系视图

布局管理器与java的swing编程不同,布局管理器本身就是一个UI组件,所有的布局管理器都ViewGroup的子类,其关系如下图。所有的布局管理器都可以作为容器类使用,通过addView添加组件,另外布局管理器本身也可以作为View组件添加到布局管理器中。

3 线性布局管理器LinearLayout

线性布局由LinearLayout类代表,将容器里的组件一个挨一个地排列起来,LinearLayout不会自动换行,到末尾后剩余的组件将不会被显示出来。LinearLayout支持的常用xml属性及其说明。

xml属性

说明

android:baselineAligned

该属性为false,将会阻止布局管理器与它的子元素基线对其

android:divider

设置垂直布局时,两个按钮之间的分隔条

android:gravity

设置布局管理器内组件的对齐方式。该属性支持top/button/left/right/center_vertical/fill_vertical...

android:measureWithLargestChild

当属性设置为true时,所有带权重的子元素都会具有最大元素的最小尺寸

android:orientation

设置布局管理器内组件的排列方式vertical/horizontal默认值

3.1FrameLayout也有LayoutParams,MarginLayoutParams内部类控制参数;如下为LinearLayout.LayoutParams控制属性

xml属性

说明

android:layout_gravity

指定该布局管理器内子组件布局方式

android:layout_weight

指定该子元素在linearLayout中所占的权重

4 表格布局

表格布局由TableLayout所代表,继承自LinearLayout,因此其本质仍然是线性管理器

表格借助TableRow来控制其他组件的行数与列数,如果某组件独占一行则可省去TableRow直接添加该组件

在表格布局中,列的宽度由该列中最宽的那个单元格所决定;整个表格布局的宽度,则取决于父容器的宽度

TableLayout的常用xml属性及其说明

xml属性

说明

android:collapseColumns

设置需要被隐藏的列序号,并用逗号隔开

android:shrinkColumns

设置需要被压缩的列序号,并用逗号隔开

andriod:stretchColumns

设置需要被拉伸的列序号,并用逗号隔开

5 帧布局

帧布局由FrameLayout所代表,继承自VIewGroup组件

帧布局为每个加入其中的组件创建一个空白区域(称为一帧)

每个子组件占据一帧,这些帧会根据gravity属性值自动对齐

FrameLayout也有LayoutParams,MarginLayoutParams内部类控制参数

FrameLayout常用的xml属性及其说明

xml属性

说明

android:foreground

设置该帧布局的前景图像

android:foregroundGravity

定义绘制前景图像的gravity属性

6 相对布局

相对布局由RelativeLayout代表,相对布局容器内子组件的位置总是相对兄弟组件、父容器来决定的,因此这种相对布局方式被称为相对布局

如果A的位置由B组件位置决定,android要求先定义B组件,再定义A组件

LayoutParams还继承了MarginLayoutParams,故Relative布局容器也可以指定MarginLayoutParams所支持的属性

RelativeLayout可支持两个xml属性

xml属性

说明

android:gravity

设置布局容器内各子组件的对齐方式

android:ignoreGravity

设置哪个组件不受gravity属性的影响

RelativeLayout.LayoutParams可支持的xml属性及其说明

android:layout_centerHorizontal

控制该子组件是否位于布局容器的水平居中

android:layout_vertical

控制该子组件是否位于布局容器的垂直居中

android:layout_centerInParent

控制该子组件是否位于布局容器的中央位置

android:layout_alignParentButtom

控制该子组件是否位于布局容器的底端对齐

android:layout_alignParentLeft

控制该子组件是否位于布局容器的左端对齐

android:layout_alignParentRight

控制该子组件是否位于布局容器的右端对齐

android:layout_alignParentTop

控制该子组件是否位于布局容器的顶端对齐

android:layout_toRightOf

控制该子组件位于给出ID组件的右侧

android:layout_toLeftOf

控制该子组件位于给出ID组件的左侧

android:layout_above

控制该子组件位于给出ID组件的上方

android:layout_below

控制该子组件位于给出ID组件的下方

android:layout_alignTop

控制该子组件位于给出ID组件的上边界对齐

android:layout_alignBottom

控制该子组件位于给出ID组件的下边界对齐

android:layout_alignLeft

控制该子组件位于给出ID组件的左边界对齐

android:layout_alignRight

控制该子组件位于给出ID组件的右边界对齐

7 网格布局

网格布局由GridLayout代表,是android4.0新增的布局管理器,如需在早期版本中使用,则需要导入相应的支撑库

GridLayout的xml属性及其相关方法

xml属性

说明

android:alignmentMode

该布局管理器采用的对齐模式

android:columnCount

该网格的列数量

android:columnOrderPreserved

该网格容器是否保留列序号

android:rowCount

该网格的行数量

android:rowOrderPreserved

该网格容器是否保留行序号

android:useDefaultMargins

该布局管理是否使用默认的页边距

LayoutParams的xml属性及其相关方法

xml属性

说明

android:layout_column

设置该子组件在GridLayout的第几列

android:columnSpan

设置该子组件在GridLayout的横向跨几列

android:layout_gravity

该子组件采用何种方式占据网格空间

android:layout_row

设置该子组件在GridLayout的第几行

android:layout_rowSpan

设置该子组件在GridLayout的横向跨几行

8 绝对布局(AbsoluteLayout)

已过时,很少用,这里不深究

安卓开发:UI组件-布局管理器和文本显示

接下来的随笔,记录了在学习b站up主:天哥在奔跑,录制的教学视频的同时,进行一个app开发. up主:天哥在奔跑 视频地址:https://www.bilibili.com/video/av38409 ...

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

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

Android UI组件:布局管理器

为了更好的管理Android应用的用户界面中的组件,Android提供了布局管理器.通过使用布局管理器,Android应用的图形用户界面具有良好的平台无关性.通常,推荐使用布局管理器来管理组件的分布. ...

Java可视化编程,基于布局管理器的UI设计

在讲述了如何将用户与功能实现代码联系到一起.怎么样便于用户理解和符合用户的使用习惯? 本篇还是就此问题作分析,站在用户角度上分析UI各组件倒底该如何设计呈现. 优秀的UI会 ...

第13章 Swing程序组件----常用布局管理器

在Swing中,每个组件在容器中都有一个具体的位置和大小,而在容器中摆放各种组件时很难判断其具体位置和大小.布局管理器提供了Swing组件安排.展示在容器中的方法及基本的布局功能. Swing提供的常 ...

【java】浅析java组件中的布局管理器

这篇博文笔者介绍一下java组件中,常用的布局管理器.java组件中的布局方式有好几十种,所有的这些布局管理器都实现了java.awt.LayoutManager接口.接下来笔者介绍一下常用的5种布局 ...

Swing布局管理器介绍

创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangjunhd.blog.51cto.com/113473/128174 当选 ...

(转)Java 的swing.GroupLayout布局管理器的使用方法和实例

摘自http://www.cnblogs.com/lionden/archive/2012/12/11/grouplayout.html (转)Java 的swing.GroupLayout布局管理器 ...

Android开发5:布局管理器2(表格布局TableLayout)

版本:Android4.3 API18  学习整理:liuxinming 概念      TableLayout继承了LinearLayout,因此它的本质依然是线性布局管理器.      表格布局采 ...

随机推荐

throttle和debounce简单实现

function debounce(delay,fn){ var timer; return function(){ var ctx = this,args = arguments; clearTim ...

S1293和S2220KTV项目结束

1.界面原型(前台的界面搭建一下) 2.数据库 3.架构设计 4.约定的文件抽取 2015年7月20日下午 歌星点歌三界面的联动,数据动态加载 01.点击第一个LIstView,弹出第二个ListVi ...

Android课程---寄存器与存储器的区别

存储器在CPU外,一般指硬盘,U盘等可以在切断电源后保存资料的设备,容量一般比较大,缺点是读写速度都很慢,普通的机械硬盘读写速度一般是50MB/S左右.内存和寄存器就是为了解决存储器读写速度慢而产生的 ...

C Socket Programming for Linux with a Server and Client Example Code

Typically two processes communicate with each other on a single system through one of the following ...

JAVA多线程两个实用的辅助类(CountDownLatch和AtomicBoolean)

AtomicBoolean它允许一个线程等待一个线程完成任务,然后运行: A boolean value that may be updated atomically. See the java.ut ...

Django(十)COOKIE和session

https://www.cnblogs.com/haiyan123/p/7763169.html from django.shortcuts import render,redirect # Crea ...

HBuild 连接苹果手机

PC.苹果手机.数据线 1.在电脑端安装iTunes,安装完成之后提示重启. 2.用数据线连接苹果手机 PC 3.打开HBuild      菜单栏   -->  运行   -->  真机 ...

python 操作系统模块 -- OS

os,语义为操作系统,模块提供了访问多个操作系统服务的功能,可以处理文件和目录这些我们日常手动需要做的操作.os和它的子模块os.path还包括一些用于检查.构造.删除目录和文件的函数,以及一些处理路 ...

【LeetCode每天一题】Add Two Numbers(两链表相加)

You are given two non-empty linked lists representing two non-negative integers. The digits are stor ...

linux ui 布局管理器,第1组UI组件:布局管理器相关推荐

  1. 【信息系统项目管理师学习笔记】10大管理|47个过程组:项目整体管理|制定项目章程

    文章目录 一.整体管理概述 二.制定项目章程 定义 项目章程是由项目实施组织外部签发的. 项目章程的内容(背诵) 1.制定项目章程的过程(背诵输入.工具和技术.输出) 2.制定项目章程的依据 1)协议 ...

  2. 【信息系统项目管理师学习笔记】10大管理|47个过程组:项目整体管理|指导与管理项目执行

    文章目录 四.指导与管理项目执行 定义 指导与管理项目执行还要求实施 1)批准的纠正措施 2)批准的预防措施 3)批准的缺陷补救请求 1.指导与管理项目执行的依据(输入) 1)项目管理计划 2)批准的 ...

  3. java图形界面怎么进行布局_JAVA图形界面(GUI)之布局管理器

    一个友好的读者界面是一款软件成功的关键因素之一.布局管理器就是用来管理读者的界面.摆放的效果直接影响到界面是否美观.布局管理器通过布局管理类来对各种读者组件进行管理. 使用布局管理器,不仅可以有序的排 ...

  4. Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1)

    目录 1.Qt Designer调整组件布局比例 2.addStretch()函数调整组件布局比例 在一个布局容器中,有时可能需要调整各组件的显示比例,让界面达到更美观效果. 调整组件布局比例有两种办 ...

  5. 火山安卓窗口组件操作组件布局类

    本源码转载自利快云https://www.lkuaiy.com/ 火山安卓窗口组件操作组件布局类   一.窗口组件操作组件布局类 1.首先设计一个组件布局类,然后公开组件. 2.在启动类中定义一个窗口 ...

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

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

  7. 网格组布局管理器(GridBagLayout)网格包布局管理器

    网格组布局管理器GridBagLayout(又称为网格包布局管理器),是GridLayout的加强版,它是一个灵活的布局管理器,它不要求组件的大小相同便可以将组件沿垂直.水平或它们的基线对齐.每个Gr ...

  8. java 网格布局管理器,Java图形化界面设计——布局管理器之GridLayout(网格布局)...

    网格布局特点: l  使容器中的各组件呈M行×N列的网格状分布. l  网格每列宽度相同,等于容器的宽度除以网格的列数. l  网格每行高度相同,等于容器的高度除以网格的行数. l  各组件的排列方式 ...

  9. 组群的基本概念linux,linux课件-Linux系统中组群与用户管理.ppt

    <linux课件-Linux系统中组群与用户管理.ppt>由会员分享,可在线阅读,更多相关<linux课件-Linux系统中组群与用户管理.ppt(66页珍藏版)>请在装配图网 ...

  10. linux系统用户,组和权限的管理

    PS: {最近一直在做毕业设计,前面博客也记录过我的一些过程.其中需要在Ubuntu上搭建一个FTP服务器,此处我选择Vsftpd,但是在我对vsftpd的配置文件vsftpd.conf设置正确后(对 ...

最新文章

  1. 工具——Java后端开发中用到的一些工具(windows)
  2. Vue2.0史上最全入坑教程(上)—— 搭建Vue脚手架(vue-cli)
  3. php判断pdf页码,PHP_PHP简单读取PDF页数的实现方法,本文实例讲述了PHP简单读取PDF - phpStudy...
  4. hdu 3790 最短路径问题
  5. [DirectX11]Gerstner波 实现简单的水面模拟
  6. React Native 从入门到原理
  7. jpa onetoone_java – JPA,Hibernate:仅使用外键的OneToOne映...
  8. C语言和设计模式(迭代器模式)
  9. 为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?
  10. 特斯拉电池检测_特斯拉风格的割草机,也是采用电池供电
  11. Redis 快速入门 -- Redis 命令(6)
  12. php+uniapp(微信小程序版)实现电子签名及合同生成
  13. bzoj 4082: [Wf2014]Surveillance 倍增
  14. L2TP/IPSec一键安装脚本
  15. 电压信号与电流信号的转换
  16. redis——jedis的使用以及springboot整合redis
  17. 电路交换与分组交换技术
  18. 16.子查询之exists型子查询
  19. 服务器信息 sid,裸金属服务器SID配置
  20. 用Python爬虫获取NBA球员的生涯数据

热门文章

  1. 计算机断层CT检查肺部混浊,揪出早期肺癌 低剂量电脑断层检查
  2. 5年磨一剑|优酷Android包瘦身治理思路全解
  3. 将VMware与SoftICE基于网络的远程调试功能相结合
  4. 铁威马NAS搭建邮件服务器教程
  5. 利用牛顿迭代公式开方
  6. 抓取中央气象台-台风报文数据
  7. java 计算年龄_Java 根据出生日期计算年龄
  8. Samsung Bada程序介绍——CurrencyShow
  9. 怎么实现word自动分级标题
  10. 最大公约数,最小公倍数的求法