Android五大布局介绍

Android布局是应用界面开发的重要一环,在Android中,共有五种布局方式,分别是:
FrameLayout(帧布局),
LinearLayout(线性布局),
AbsoluteLayout(绝对布局),
RelativeLayout(相对布局),
TableLayout(表格布局)。
一,帧布局
FrameLayout是五大布局中最简单的一个布局,可以说成是层布局方式。在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。

属性
android: foreground 设置帧布局容器的前景图像(始终在所有子控件之上)
android: foregroundGravity 设置前景图像显示的位置

二,线性布局
这种布局比较常用,也比较简单,就是每个元素占一行,当然也可能声明为横向排放,也就是每个元素占一列。

属性
android: oruentation 设置布局内控件的排列顺序
android: layout_weight 在布局内设置控件权重,属性值可直接写int值

三 ,绝对布局
在此布局中的子元素的android:layout_x和android:layout_y属性将生效,用于描述该子元素的坐标位置。

屏幕左上角为坐标原点(0,0),第一个0代表横坐标,向右移动此值增大,第二个0代表纵坐标,向下移动,此值增大。

在此布局中的子元素可以相互重叠。在实际开发中,通常不采用此布局格式,因为它的界面代码过于刚性,以至于有可能不能很好的适配各种终端。

属性
layout_constraintHorizontal_bias 横向的倾向
layout_constraintVertical_bias 纵向的倾向

四,相对布局
RelativeLayout按照各子元素之间的位置关系完成布局。在此布局中的子元素里与位置相关的属性将生效。

注意在指定位置关系时,引用的ID必须在引用之前,先被定义,否则将出现异常。RelativeLayout是Android五大布局结构中最灵活的一种布局结构,比较适合一些复杂界面的布局。

属性:
android: layout_centerParent 设置当前控件位于父布局的中央位置
android: layout_centerVertical 设置当前控件位于父布局的垂直居中位置
android:layout_centerHorizontal 设置当前控件位于父布局的水平居中位置
android:layout_above 设置当前控件位于某控件上方
android:layout_below 设置当前控件位于某控件下方
android:layout_toLeft(Right)Of 设置当前控件位于某控件左(右)侧
android:layout_alignParentTop(Left,Right,Bottom) 设置当前控件是否与父控件顶端(左,右,底端)对齐
android:layout_alignTop(Bottom) 设置当前控件的上(下)边界与某控件的上边界对齐
android:layout_alignLeft(Right) 设置当前控件的左(右)边界与某控件的右边界对齐

五,表格布局
适用于N行N列的布局格式。
一个TableLayout由许多TableRow组成,一个TableRow就代表TableLayout中的一行。

TableRow是LinearLayout的子类,
ablelLayout并不需要明确地声明包含多少行、多少列,而是通过TableRow,以及其他组件来控制表格的行数和列数, TableRow也是容器,因此可以向TableRow里面添加其他组件,没添加一个组件该表格就增加一列。

如果想TableLayout里面添加组件,那么该组件就直接占用一行。在表格布局中,列的宽度由该列中最宽的单元格决定,整个表格布局的宽度取决于父容器的宽度(默认是占满父容器本身)。

属性
android:stretchColumns 设置可被拉伸的列。
android:shrinkColumns 设置可被收缩的列。
android:collapseColumns 设置可被隐藏的列。

通用属性
android:id 设置布局的标识
android:layout_width 设置布局的宽度
android:layout_height 设置布局的高度
android:background 设置布局的背景
android:layout_margin 设置当前布局与屏幕边界或与周围控件的距离
android:padding 设置当前布局与该布局中控件的距离

你可能感兴趣的:(android)