线性布局 :LinearLayout
在线性布局中,组件是有方向的,就是说我们放入线性布局中的组件只能按照 水平 或者 垂直 方向来显示,
并且线性布局是不会换行的,就是说当我们的控件排列到了界面边缘后,后面的组件将不会显示出来。
线性布局中的属性:
android:orientation 属性,控制线性布局中控件的方向,有水平(horizontal)和垂直(vertical)两种可选项,默认的是垂直方向(虽然说默认是垂直方向,但是在最新版AS中,不设置方向依然会报错)。
android:gravity 属性,设置布局内组件的对齐方式,可选值有:top、right、bottom、left、center、center_vertical、center_horizontal、fill、fill_vertical、fill_horizontal、clip_vertical、clip_horizontal,这些属性可以同时指定多个,用 | 分隔。 (线性布局方向为horizontal时候,top,bottom,center_vertical等属性不会起作用,同理方向为vertical时候,left,right,center_horizontal等属性不会生效,但是center不管方向如何都起作用。)
android:layout_width 属性,设置组件的基本宽度,可选为fill_parent、match_parent、wrap_content。fill_parent(已废弃)和match_parent都表示宽度和父容器宽度相同,wrap_content表示宽度刚好包裹住它里面的内容。
android:layout_height 属性,设置组件的基本高度,可选为fill_parent、match_parent、wrap_content。fill_parent(已废弃)和match_parent都表示高度和父容器宽度相同,wrap_content表示高度刚好包裹住它里面的内容。
android:id 属性,用于指定此组件的id,指定id后会在R.java文件中自动生成一个对应的属性。在java代码中通过findViewById()获取此控件。
android:background 属性,为组件设置背景颜色,可是图片,也可是色值。
如果是图片,则需要将准备好的图片放到drawable或者mipmap 文件夹下,通android:background=“@drawable/xxx”或者 android:background =“@mipmap/xxx”来引用。
如果是色值,则通过 android:background =“#XXFFFFFF”颜色值是用16进制来表示的,XX代表透明度,后面的6位表示具体的颜色。
表格布局 :TableLayout
表格布局与常用的表格类似,以行、列来管理其中的UI组件,用<TableLayout>标记,其中用<TableRow>来标记每一行。TableLayout继承LinealLayout,因此完全支持LinearLayout中的所有属性。
TableLayout 区别与LinearLayout的属性
1. android:collapseColumns 设置需要被隐藏的列的序号,从0开始。多个序号用“,”分隔。
2. android:shrinkColumns 设置允许被收缩的列序号,从0开始。多个序号用“,”分隔。
3. android:stretchColumns 设置允许被拉伸的列序号,从0开始。多个序号用“,”分隔。
帧布局 :FrameLayout
每隔组件都是从屏幕左上角(0,0)开始的,多个组件层叠排列,后面的覆盖前面的组件。
FrameLayout的特殊属性
- android:foreground 属性,设置帧布局的前景图像,可以是图片也可以是颜色。前景图像在最上层,不会被它里面的其他控件所覆盖。
android:foregroundGravity 属性,设置前景图像的位置,同线性布局的gravity属性。
需要注意的是 如果设置了foregroundGravity属性,前景图设的是色值的话,是显示不出来,只有设置的是图片能显示出来;
如果不设置foregroundGravity属性,那么不管android:foreground 设置的颜色还是图片都是充满整个FrameLayout的。
相对布局 :RelativeLayout
相对布局,顾名思义就是里面的组件是按照各个组件的相对位置来确定的。如A在B的上、下、左、右等方向显示。相对布局中的控件如果不设置好,是会出现控件的重叠的。
- android:gravity 属性,用来设置里面的各组件的对其方式
- android:ignoreGravity 属性,用来指定那个组件不受gravity属性的影响。
- android:layout_above 属性,属性值为其他UI组件的id,指定该组件位于哪个组件上方。
- android:layout_below 属性,属性值为其他UI组件的id,指定该组件位于哪个组件下方。
- android:layout_toLeftOf 属性,属性值为其他UI组件的id,指定该组件位于哪个组件左侧。
- android:layout_toRightOf 属性,属性值为其他UI组件的id,指定该组件位于哪个组件右侧。
- android:layout_aliginBottom 属性,属性值为其他UI组件的id,指定该组件与哪个组件下边界对齐。
- android:layout_aliginLeft 属性,属性值为其他UI组件的id,指定该组件与哪个组件左边界对齐。
- android:layout_aliginRight 属性,属性值为其他UI组件的id,指定该组件与哪个组件右边界对齐。
- android:layout_aliginTop 属性,属性值为其他UI组件的id,指定该组件与哪个组件上边界对齐。
- android:layout_aliginParentBottom 值为boolean类型,指定该组件是否与父布局底端对齐
- android:layout_aliginParentTop 值为boolean类型,指定该组件是否与父布局顶端对齐
- android:layout_aliginParentLeft 值为boolean类型,指定该组件是否与父布局左边对齐
- android:layout_aliginParentRight 值为boolean类型,指定该组件是否与父布局右边对齐
- android:layout_centerHorizontal 值为boolean类型,指定该组件是否位于父布局水平居中位置。
- android:layout_cneterVertical 值为boolean ,指定该组件是否位于父布局垂直居中位置。
- android:layout_centerInParent 值为boolean,指定该组件是否位于父布局垂直和水平同时居中位置。