linux ui 布局管理器,第1组UI组件:布局管理器
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组件:布局管理器相关推荐
- 【信息系统项目管理师学习笔记】10大管理|47个过程组:项目整体管理|制定项目章程
文章目录 一.整体管理概述 二.制定项目章程 定义 项目章程是由项目实施组织外部签发的. 项目章程的内容(背诵) 1.制定项目章程的过程(背诵输入.工具和技术.输出) 2.制定项目章程的依据 1)协议 ...
- 【信息系统项目管理师学习笔记】10大管理|47个过程组:项目整体管理|指导与管理项目执行
文章目录 四.指导与管理项目执行 定义 指导与管理项目执行还要求实施 1)批准的纠正措施 2)批准的预防措施 3)批准的缺陷补救请求 1.指导与管理项目执行的依据(输入) 1)项目管理计划 2)批准的 ...
- java图形界面怎么进行布局_JAVA图形界面(GUI)之布局管理器
一个友好的读者界面是一款软件成功的关键因素之一.布局管理器就是用来管理读者的界面.摆放的效果直接影响到界面是否美观.布局管理器通过布局管理类来对各种读者组件进行管理. 使用布局管理器,不仅可以有序的排 ...
- Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1)
目录 1.Qt Designer调整组件布局比例 2.addStretch()函数调整组件布局比例 在一个布局容器中,有时可能需要调整各组件的显示比例,让界面达到更美观效果. 调整组件布局比例有两种办 ...
- 火山安卓窗口组件操作组件布局类
本源码转载自利快云https://www.lkuaiy.com/ 火山安卓窗口组件操作组件布局类 一.窗口组件操作组件布局类 1.首先设计一个组件布局类,然后公开组件. 2.在启动类中定义一个窗口 ...
- 疯狂Android讲义(二)——第二部分:第1组UI组件(布局管理器)
一.第1组UI组件:布局管理器 Android 的界面组件比较多,不利于掌握它们内在的关系.为了帮助读者更好地掌握Android界面组件的关系,本书将会把这些界面组件按照它们的关联分析,分为几组进行介 ...
- 网格组布局管理器(GridBagLayout)网格包布局管理器
网格组布局管理器GridBagLayout(又称为网格包布局管理器),是GridLayout的加强版,它是一个灵活的布局管理器,它不要求组件的大小相同便可以将组件沿垂直.水平或它们的基线对齐.每个Gr ...
- java 网格布局管理器,Java图形化界面设计——布局管理器之GridLayout(网格布局)...
网格布局特点: l 使容器中的各组件呈M行×N列的网格状分布. l 网格每列宽度相同,等于容器的宽度除以网格的列数. l 网格每行高度相同,等于容器的高度除以网格的行数. l 各组件的排列方式 ...
- 组群的基本概念linux,linux课件-Linux系统中组群与用户管理.ppt
<linux课件-Linux系统中组群与用户管理.ppt>由会员分享,可在线阅读,更多相关<linux课件-Linux系统中组群与用户管理.ppt(66页珍藏版)>请在装配图网 ...
- linux系统用户,组和权限的管理
PS: {最近一直在做毕业设计,前面博客也记录过我的一些过程.其中需要在Ubuntu上搭建一个FTP服务器,此处我选择Vsftpd,但是在我对vsftpd的配置文件vsftpd.conf设置正确后(对 ...
最新文章
- 工具——Java后端开发中用到的一些工具(windows)
- Vue2.0史上最全入坑教程(上)—— 搭建Vue脚手架(vue-cli)
- php判断pdf页码,PHP_PHP简单读取PDF页数的实现方法,本文实例讲述了PHP简单读取PDF - phpStudy...
- hdu 3790 最短路径问题
- [DirectX11]Gerstner波 实现简单的水面模拟
- React Native 从入门到原理
- jpa onetoone_java – JPA,Hibernate:仅使用外键的OneToOne映...
- C语言和设计模式(迭代器模式)
- 为什么在 Windows 下用 Ctrl+Z 退出 Python 而 Linux 下用 Ctrl+D 呢?
- 特斯拉电池检测_特斯拉风格的割草机,也是采用电池供电
- Redis 快速入门 -- Redis 命令(6)
- php+uniapp(微信小程序版)实现电子签名及合同生成
- bzoj 4082: [Wf2014]Surveillance 倍增
- L2TP/IPSec一键安装脚本
- 电压信号与电流信号的转换
- redis——jedis的使用以及springboot整合redis
- 电路交换与分组交换技术
- 16.子查询之exists型子查询
- 服务器信息 sid,裸金属服务器SID配置
- 用Python爬虫获取NBA球员的生涯数据