RelativeLayout(相对布局)
通过定义控件和控件之间的关系来确定位置,默认情况下都是与屏幕左上角对齐;
相对于同级控件而言:
layout_toLeftOf="@id/tv"----某控件的左边
layout_toRightOf="@id/tv"---某控件的右边
layout_above="@id/tv"---某控件的上方
layout_below="@id/tv"---某控件的下方
layout_marginLeft="10.px"---距左边的距离
layout_marginTop="10.px"---距上边的距离
layout_alignTop="@id/tv"--与某控件的顶端对齐
相对于父窗体而言:
layout_centerInParent="true"---窗体中央
layout_centerHorizontal="true"---水平方向居中(默认情况下在界面最上方,水平居中)
layout_centerVertical="true"--竖直方向居中(默认情况下在界面最左边,居中)
layout_alignParentBottom="true"--与父窗体底部对齐(默认是左下角)
layout_alignParentRight="true"--与父窗体右边对齐(默认是右上角)
LinearLayout(线性布局)
控件自上而下或者自左向右排列采用线性布局(竖直方向和水平方向)--通过orientation指定布局方向,不存在控件对齐的参数。(线性布局中直接指定属性gravity为center,则控件在屏幕得中央)
线性布局和相对布局经常混合使用,几个控件组合成一个相对布局,这几个相对布局组成一个线性布局,自上而下排列,而其中的分割线就是<View/>,宽度填充父窗体,高度手动给定,再指定background属性来添加颜色。
LinearLayout还有个非常重要的属性:android:layout_weight="1",这个weight在垂直布局中时代表行距,水平布局时代表列宽,weight值越大就越大。
TableLayout(表格布局)
多用于安卓办公,<TableRow/>定义表格行,其中可以具体定义每一个元素,对齐方式android_gravity=""。
若某列被设置为Shrinkable,那么该列所有的单元格的宽度可以被收缩;
若某列被设置为Stretchable,那么该列所有的单元格的宽度可以被拉伸;
若某列被设置为Collapsed,那么该列所有的单元格的宽度可以被收缩;
AbsoluteLayout(绝对布局)
绝对布局犹如div指定了absolute属性,用X、Y来指定元素的位置
layout_X--距离左边的距离
layout_Y--距离上边的距离
垂直切换时,往往会出现问题,元素较多时计算会比较麻烦
FrameLayout(帧布局)
我们可以认为这种布局覆盖式的添加控件,后指定的控件会出现在先指定的控件的上面,而且还会覆盖住,层次感强的布局就需要安排控件的先后顺序