综述:
布局可以理解为一个容器
安卓中的五大布局
编号
布局名
英文名
概述
1
线性布局
LinearLayout
以水平或垂直方式展开显示
2
相对布局
RelativeLayout
按照各子元素之间的位置关系完成布局
3
幀布局
FrameLayout
一层一层布局
4
表格布局
TableLayout
以表格的形式进行布局
5
绝对布局
AbsoluteLayout
因为不方便做屏幕适配,已经被废弃了
线性布局:
描述:
分为水平线性布局或垂直线性布局,按照垂直或者水平的顺序依次排列子元素,每一个子元素都位于前一个元素之后。如果是垂直排列,那么将是一个N行单列的结构,每一行只会有一个元素,而不论这个元素的宽度为多少;如果是水平排列,那么将是一个单行N列的结构。如果搭建两行两列的结构,通常的方式是先垂直排列两个元素,每一个元素里再包含一个LinearLayout进行水平排列。
特殊属性:
android:orientation:线性布局方向。vertical:垂直;horizontal:水平。
android:layout_weight:权重,默认值为0(指定多大空间就占据多大的空间),当他的值>0时,将父视图中的可用空间进行分割, 值越大权重就越大, 占据的比例就会越大。
相对布局:
描述:
按照各子元素之间的位置关系完成布局。是Android五大布局结构中最灵活的一种布局结构,比较适合一些复杂界面的布局。
由于互相邮箱,改动一个view,就会打乱整个排版,牵一发而动全身。
注意在指定位置关系时,引用的ID必须在引用之前,先被定义,否则将出现异常。
特殊属性:
同方向对齐属性:
android:layout_alignLeft
android:layout_alignRight
android:layout_alignTop
android:layout_alignBottom
反方向对齐属性:
android:layout_toLeftOf
android:layout_toRightOf
android:layout_above
android:layout_below
相对父视同方向对齐属性
android:layout_alignParentLeft
android:layout_alignParentRight
android:layout_alignParentTop
android:layout_alignParentBottom
相对父视图居中属性:
android:layout_centerInParent
android:layout_centerHorizontal
android:layout_centerVertical
幀布局:
描述:
帧布局中的每一个子View都代表一个画面,默认以屏幕左上角作为( 0,0 )坐标,按定义的先后顺序依次逐屏显示 , 后面出现的会覆盖前面的画面。
通过子View的android:layout_gravity 属性来指定子视图的位置
表格布局:
描述:
适用于多行多列的布局格式,每个TableLayout是由多个TableRow组成,一个TableRow就表示TableLayout中的每一行,这一行可以由多个子元素组成。
实际上TableLayout和TableRow都是LineLayout线性布局的子类。但是TableRow的参数android:orientation属性值固定为horizontal
特殊子标签:
:就表示TableLayout中的一行
绝对布局:
描述:
在此布局中的子元素的android:layout_x和android:layout_y属性将生效,用于描述该子元素的坐标位置。屏幕左上角为坐标原点(0,0),第一个0代表横坐标,向右移动此值增大,第二个0代表纵坐标,向下移动,此值增大。在此布局中的子元素可以相互重叠。在实际开发中,通常不采用此布局格式,因为它的界面代码过于刚性,以至于有可能不能很好的适配各种终端。
特殊属性:
android:layout_x:子view左上角横坐标
android:layout_y:子view左上角纵坐标