一、线性布局LineraLayout
X线性布局有点像Swing编程里的Box,他们都会将容器里的组件一个挨一个地排列起来。LinearLayout可以控制各组件横向排列,也可以控制各组件纵向排列,android线性布局不会换行,当组件一个挨着一个的地排列到头之后,剩下的组件将不会被显示出来
LinearLauout常用属性
android:baselineAligned="true"-----该属性设置为false时,将会阻止该布局与它的子元素的基线对其
android:divider-----设置垂直布局时两个按钮之间的间隔条
android:gravity-----设置布局管理器内组件的对齐方式(该属性支持top、buttom、left、center_vartical等也可以同时指定多种对齐方式的组合如:left|center_vartical)
android:measuerWithLargestChild-----当该属性设为true时,所有带权重的子元素都会具有最大子元素的最小尺寸
android:orientation-----设置布局管理器内组件的排列方式,可以设置为horizontal(水平排列)、vertaical(垂直排列,默认值)
二、表格布局TableLayout
TableLayout继承了LeneraLayout,因此它的本质依然是线性布局管理器。表格布局采用行、列的形式来管理UI组件,TableLayout并不需要明确地声明包含多少行多少列,而是通过添加TableRow、其他控件来控制表格的行数和列数
每次向TableLayout中添加一个TableRow,该TableRow就是一个表格行,TableRow也是容器,因此它也可以不断地添加其他组件,每添加一个子组件该表格就增加一列
如果直接向TableLayout中添加组件,那么这个组件将直接占用一行。
在表格布局中,列的宽度由该列中最宽的那个单元格决定,整个表格的宽度取决于父容器的宽度(默认总是占满父容器本身)
在表格布局中,可以为单元格设置如下三种行为方式
>Shrinkable:如果某个列被设为Shrinkable,那么该列的所有单元格的宽度可以被收缩,以保证该表格能适应父容器的宽度
android:shrinkColumns="1,2" -----设置需要被收缩的列的列序号,多个列号之间用逗号隔开
>Stretchable:如果某个列被设为Stretchable,那么该列的多有单元格的卡un度可以被拉伸,以保证组件能完全填满表格空余空间
android:stretchColumns="1,2" -----设置需要被隐藏的列的列序号,多个列号之间用逗号隔开
>Colapsed:如果某个列被设为Collapsed,那么该列的所有单元格会被隐藏
android:collapseColumns="1,2" -----设置需要被隐藏的列的列序号,多个列号之间用逗号隔开
三、帧布局FrameLayout
帧布局容器为每个加入其中的组件创建一个空白的区域(成为一帧),每个子组件占据一帧,这些帧都会根据gravity属性执行自动对齐
FrameLayout的常用属性
android:foreground -----设置该帧布局容器的前景图片
android:foregroundGravity -----定义绘制前景图像的gravity属性
FarmeLayout所包含的子元素也可指定android:layout_gravity属性
四、相对布局RelativeLayout
相对布局容器没子组件的位置总是相对兄弟组件、父容器来决定的
RelativeLayout属性
android:gravity -----设置该布局容器内各子组件的对齐方式
android:ignoreGravity -----设置哪个组件不受gravity属性的影响
android:layout_centerHorizontal -----控制该子组件是否位于布局容器的水平居中
android:layout_centerVertical -----控制该子组件是否位于布局容器的垂直居中
android:layout_centerInParent -----控制该子组件是否位于布局容器的中央位置
android:layout_alignParentBotton -----控制该子组件是否位于布局容器底端对齐
android:layout_alignParentLeft -----控制该子组件是否位于布局容器左边对齐
android:layout_alignParentRight -----控制该子组件是否位于布局容器右边对齐
android:layout_alignParentTop -----控制该子组件是否位于布局容器顶端对齐
android:layout_toRightOf ------控制该子组件位于给出ID组件的右侧
(toLeftOf左侧、above上方、below下方、alignTop上边界对齐、alignBottom下边界对齐、alignLeft左边界对齐、alignRight右边界对齐)
五、绝对布局AbsoluteLayout
绝对布局通过x坐标、y坐标来控制组件的位置。当使用AbsoluteLayout作为布局容器时,布局容器不再管理子组件的位置、大小。
android:layout_x -----指定该子组件的x坐标
android:layout_y -----指定该子组件的y坐标