Android开发之布局管理器

3.1什么是布局管理器

(1)为什么要进行界面布局?

使得页面能够有条理,便于观看和理解。

  1. 什么是布局管理器?

就是用来控制组件如何摆放的,例如棋盘和棋子,棋盘就是布局管理器,棋子就是组件,使得页面能够适应不同型号的手机。

  1. 常用的布局管理器

RelativeLayout(相对布局管理器)

LinearLayout(线性布局管理器)

FrameLayout(帧布局管理器)

TableLayout(表格布局管理器)

AbsoluteLayout(绝对布局管理器)(2.0之后就很少用了)

GridLayout(网格布局管理器)(4.0之后推出,使用起来比较方便,基本上可以代替表格布局管理器)

3.2 RelativeLayout(相对布局管理器)

(1)以某个布局组件为参考点,别的组件则根据参考点组件进行摆放。

(2)使用场景:根据组件的相对位置来进行摆放时

(3)属性:android:gravity

android:ignoreGravity后面跟的是id  如:Android:ignoreGravity:”@id/user”

android:layout_weight

android:layout_height

android:paddingTop

android:paddingButtom

android:paddingLeft

android:paddingRight等等

(4)内部类:RelativeLayout.LayoutParams,通过内部类提供的一些xml属性,可以更好的控制相对布局管理器中各组件的分布方式,需要设置在组件上。

相对于那个组件摆放:android:layout_above

android:layout_below

android:layout_toLeftof

android:layout_toRightof

设置组件与布局管理器那边对齐:(值为布尔型)

android:layout_alignParentButtom

android:layout_alignParentTop

android:layout_alignParentLeft

android:layout_alignParentRight

设置组件与那个组件的边界对齐

android:layout_alignButtom

android:layout_alignTop

android:layout_alignLeft

android:layout_alignRight

设置组件位于布局管理器的那个位置:(值为布尔型)android:layout_centerHorizontal//水平居中

android:layout_centerParent//中间

android:layout_centerVertical//垂直居中

3.3 LinearLayout(线性布局管理器)

(1)将放入其中的组件按照垂直或者水平的方向来进行排列。分为垂直线性布局管理器和水平线性布局管理器。通过android:orientation="vertical"和android:orientation="horizontal"来实现。

(2)主要属性:android:orientation

android:gravity

(3)子组件属性:android:layout_weight:用于设置组件所占的权重,即组件占父容器的比例。

 

3.4 FrameLayout(帧布局管理器)

(1)为每一个放入其中的组件创建一个空白的区域,这些组件按照先后顺序层叠放入,后面的组件会覆盖前面的组件。通常用于显示层叠的内容,并且还可以实现拖动等动画效果。

(2)属性:android:foreground:为当前的帧布局管理器设置一个前景图像

android:foregroundGravity:设置前景图像的位置

前景图像:始终位于最上层的图像,其他图像不是能把它盖住的。

3.5 TableLayout(表格布局管理器)

(1)以行列的形式来管理放入其中的UI组件

(2)每添加一个<TableRow></TableRow>就多一行,它也是一个容器,在其内部每添加一个组件就占一列。每添加一个组件就增加一行。

(3)属性:

android:collapseColumns 某一列被隐藏

例子:android:collapseColumns="1"设置第2列被隐藏,列是从0开始

android:collapseColumns="1,2"设置第2列和第3列被隐藏

android:stretchColumns设置某一列允许被拉伸,以适应屏幕大小

例子:android:stretchColumns="1" 设置第2列允许被拉伸

android:shrinkColumns设置某一列允许被收缩,以适应屏幕大小

例子:android:shrinkColumns="1"设置某2列允许被收缩

3.6 GridLayout(网格布局管理器)

(1)屏幕被虚拟的细线化成行、列、单元格,每个单元格放置一个组件

与表格布局管理器有相似之处,但是既可以跨行显示又跨列显示,这在表格布局管理器中是不可以的。且在网格布局管理器中,一行占满后,超出容器的组件将会自动换行,而在表格布局管理器中超出容器的组件将不会显示。

  1. 属性:

android:columnCount 用于指定网格的最大列数

android:orientation 当我们没有为放入其中的组件分配行和列时,指定这些组件的排列方式,vertical垂直排列,horizontal水平排列

android:rowCount  用于指定网格的最大行数

  1. 内部类:GridLayout.LayoutParams 为了控制各子组件的分布方式

属性:android:layout_column 用于指定子组件位于网格的第几列

例子:android:layout_column=”1”指定子组件位于网格的第二列

android:layout_columnSpan 用于表示子组件横向跨几列

android:layout_columnWeight 子组件在水平方向的权重,分配水平剩余空间的比例

android:layout_gravity

android:layout_row 用于指定子组件位于网格的第几行

android:layout_rowSpan 用于表示子组件纵向跨几行

android:layout_rowWeight 子组件在垂直方向的权重,分配垂直剩余空间的比例

3.7布局管理器的嵌套

嵌套原则:

(1)根布局管理器必须包含xmlns属性;

(2)在一个布局文件中,最多只能有一个跟布局管理器,如果需要有多个还需要使用一个跟布局管理器将他们括起来;

(3)不能嵌套太深,如果嵌套太深,则会影响性能,主要体现在页面加载速度慢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值