1.LinearLayout
线性布局是程序中最常见的一种布局方式,线性布局可以分为水平线性布局和垂直线性布局两种,通过android:orientation属性可以设置线性布局的方向。
1)android:gravity
一定是下列常量中的一个或多个(由'|'分割).
常量 | 值 | 描述 |
| 0x30 | 将对象放在其容器的顶部,不改变其大小. |
| 0x50 | 将对象放在其容器的底部,不改变其大小. |
| 0x03 | 将对象放在其容器的左侧,不改变其大小. |
| 0x05 | 将对象放在其容器的右侧,不改变其大小. |
| 0x10 | 将对象纵向居中,不改变其大小. |
| 0x70 | 必要的时候增加对象的纵向大小,以完全充满其容器. |
| 0x01 | 将对象横向居中,不改变其大小. |
| 0x07 | 必要的时候增加对象的横向大小,以完全充满其容器. |
| 0x11 | 将对象横纵居中,不改变其大小. |
| 0x77 | 必要的时候增加对象的横纵向大小,以完全充满其容器. |
| 0x80 | 附加选项,用于按照容器的边来剪切对象的顶部和/或底部的内容. 剪切基于其纵向对齐设置:顶部对齐时,剪切底部;底部对齐时剪切顶部;除此之外剪切顶部和底部. |
| 0x08 | 附加选项,用于按照容器的边来剪切对象的左侧和/或右侧的内容. 剪切基于其横向对齐设置:左侧对齐时,剪切右侧;右侧对齐时剪切左侧;除此之外剪切左侧和右侧. |
2) android:layout_weight 通过设置控件的layout_weight属性以控制各个控件在布局中的相对大小。layout_weight属性是一个非负整数值。线性布局会根据该控件layout_weight值与其所处布局中所有控件layout_weight值之和的比值为该控件分配占用的区域。例如,在水平布局的LinearLayout中有两个Button,这两个Button的layout_weight属性值都为1,那么这两个按钮都会被拉伸到整个屏幕宽度的一半。如果layout_weight指为0,控件会按原大小显示,不会被拉伸;对于其余layout_weight属性值大于0的控件,系统将会减去layout_weight属性值为0的控件的宽度或者高度,再用剩余的宽度或高度按相应的比例来分配每一个控件显示的宽度或高度。
2.AbsoluteLayout
指定子控件的xy精确坐标的布局。绝对布局缺乏灵活性,在没有绝对定位的情况下相比其他类型的布局更难维护。(不太推荐使用) AbsoluteLayout是绝对位置布局。在此布局中的子元素的android:layout_x和android:layout_y属性将生效,用于描述该子元素的坐标位置。屏幕左上角为坐标原点(0,0),第一个0代表横坐标,向右移动此值增大,第二个0代表纵坐标,向下移动,此值增大。在此布局中的子元素可以相互重叠。在实际开发中,通常不采用此布局格式,因为它的界面代码过于刚性,以至于有可能不能很好的适配各种终端。
3.FrameLayout
所有添加到这个布局中的视图都以层叠的方式显示。第一个添加的组件放到最底层,最后添加到框架中的视图显示在最上面。上一层的会覆盖下一层的控件。在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。
4.Relativelayout
RelativeLayout顾名思义,相对布局,在这个容器内部的子元素们可以使用彼此之间的相对位置或者和容器间的相对位置来进行定位。
注意:不能在RelativeLayout容器本身和他的子元素之间产生循环依赖,比如说,不能将RelativeLayout的高设置成为WRAP_CONTENT的时候将子元素的高设置成为 ALIGN_PARENT_BOTTOM。
android:layout_above将该控件置于给定ID的控件之上
android:layout_below
android:layout_toLeftOf将该控件置于给定ID的控件之左
android:layout_toRightOf将该控件置于给定ID的控件之右
android:layout_alignBaseline该控件基线对齐给定ID的基线
android:layout_alignBottom该控件于给定ID的控件底部对齐
android:layout_alignLeft该控件于给定ID的控件左对齐
android:layout_alignRight 该控件于给定ID的控件右对齐
android:layout_alignTop该控件于给定ID的控件顶对齐
android:layout_alignParentLeft如果为True,该控件位于父控件的左部
android:layout_alignParentRight 如果为True,该控件位于父控件的右部
android:layout_alignParentTop 如果为True,该控件位于父控件的顶部
android:layout_alignParentBottom
android:layout_centerHorizontal 如果为True,该控件将被置于水平方向的中央
android:layout_centerInParent 如为Ture,该控件将被置于父控件水平方向和垂直方向
android:layout_centerVertical
5.TableLayout
表格布局是一个ViewGroup以表格显示它的子视图(view)元素,即行和列标识一个视图的位置。Android的表格布局跟HTML中的表格布局非常类似,TableRow 就像HTML表格的<tr>标记。
定义在TableLayout整个中的:
android:collapseColumns:隐藏指定的列
android:shrinkColumns:收缩指定的列以适合屏幕,不会挤出屏幕
android:stretchColumns:尽量把指定的列填充空白部分
定义在单独控件中的属性:
android:layout_column:控件放在指定的列
android:layout_span:该控件所跨越的列数