线性布局
线性布局由LinearLayout类来代表。可以控制组件横向排列和纵向排列。
注:android:gravity属性中的多个属性值之间用竖线隔开,但竖线前后千万不能出现空格。
表格布局
表格布局由TableLayout所代表,表格布局采用行、列的形式来管理UI组件,TableLayout并不需要明确地声明包含多少行、多少列,而是通过添加TableRow、其他组件来控制表格的行数和列数。
每次向TableLayout中添加一个TableRow,该TableRow就是一个表格行,TableRow也是容器,因此它也可以不断地添加其他组件,每添加一个组件该表格就增加一列。
在表格布局中,列的宽度由该列中最宽的那个单元格决定,整个表格布局的宽度则取决于父容器的宽度(默认总是占满父容器本身)。
在表格布局管理器中,可以为单元格设置如下三种行为方式:
Shrinkable:如果某个列设为Shrinkable,那么该列的所有单元格的宽度可以被收缩,以保证该表格能适应父容器的宽度。
Strechable:如果某个列设为Stretchable,那么该列的所有单元格的宽度可以被拉伸,以保证组件能完全填满表格空余空间。
Collapsed:如果某个列被设为Collapsed,那么该列的所有单元格会被隐藏。
TableLayout的常用XML属性以及相关方法
帧布局
帧布局由FrameLayout所代表,FrameLayout直接继承了ViewGroup组件。
帧布局容器为每个加入其中的组件创建一个空白的区域(称为一帧),所有每个子组件占据一帧,这些帧都会根据gravity属性执行自动对齐。
相对布局
相对布局由RelativeLayout代表,相对布局容器内子组件的位置总是相对兄弟组件、父容器来决定的。
绝对布局
绝对布局由AbsoluteLayout代表。绝对布局就像Java AWT编程中的空布局,就是Android不提供任何布局控制,而是由开发人员自己通过X坐标、Y坐标来控制组件的位置。当使用AbsoluteLayout作为布局容器时,布局容器不再管理子组件的位置、大小——这些都需要开发人员自己控制。
使用绝对布局时,每个子组件都可指定如下两个XML属性:
layout_x:指定该子组件的X坐标
layout_y:指定该子组件的Y坐标