Android中的布局管理器有以下五种:线性布局、表格布局、帧布局、相对布局和绝对布局。
线性布局
线性布局(LinearLayout)会将容器中的组件一个接着一个排列起来,但是不会主动换行,当组件排列到头后,剩余的组件将不会显示。
表格布局(TableLayout)采用行、列的形式来管理UI组件,可以通过添加TableLow和其他组件来控制表格的行数和列数。在表格布局中,列的宽度由该列中最宽的那个单元格决定,整个表格布局的宽度取决于父容器的宽度(默认总是占满父容器本身)。TableLayout类继承自LinearLayout类。
帧布局(FrameLayout)容器为每个加入的组件创建一个空白的区域(称为一帧),所有每个子组件占据一帧,这些帧都会根据gravity属性进行自动对齐。FrameLayout类直接继承自ViewGroup类。
相对布局(RelativeLayout)容器内子组件的位置总是相对兄弟组件、父容器来决定的。如果A组件的位置由B组件的位置来决定,那么android要求先定义B组件,再定义A组件。为了控制该布局容器中的各子组件的布局分布,RelativeLayout提供了一个内部类:RelativeLayout.LayoutParams,该类提供了大量XML属性来控制RelativeLayout容器中各子组件的布局分布。
绝对布局(AbsoluteLayout)就是android不提供任何布局控制,由开发人员自己通过X坐标、Y坐标来控制组件的位置。意味着在使用AbsoluteLayout布局时,布局管理器将不再管理组件的位置和大小,这些都要开发人员自己控制。