Android界面由多个view和viewGroup构成的
Android五大布局LinearLayout(线性布局),RelativeLayout(相对布局),FrameLayout(单帧布局),Tablelayout(表格布局),AbsoluteLayout(绝对位置布局)
LinearLayout(线性布局):LinearLayout按照垂直或者水平的顺序依次排列子元素,通过它的orientation属性来设置;horizontal水平;vertical垂直
RelativeLayout(相对布局),RelativeLayout按照各子元素之间的位置关系或者与父元素之间的关系完成布局
RelativeLayout里常用的位置属性如下:
android:layout_toLeftOf —— 该组件位于引用组件的左方
android:layout_toRightOf —— 该组件位于引用组件的右方
android:layout_above —— 该组件位于引用组件的上方
android:layout_below —— 该组件位于引用组件的下方 //这组属性后面的参数为引用其他的组件
android:layout_alignParentLeft —— 该组件是否对齐父组件的左端
android:layout_alignParentRight —— 该组件是否齐其父组件的右端
android:layout_alignParentTop —— 该组件是否对齐父组件的顶部
android:layout_alignParentBottom —— 该组件是否对齐父组件的底部
android:layout_centerInParent —— 该组件是否相对于父组件居中
android:layout_centerHorizontal —— 该组件是否横向居中
android:layout_centerVertical —— 该组件是否垂直居中 / / 这两组组件的参数为boolean true为是 False为不是
FrameLayout
FrameLayout是五大布局中最简单的一个布局,在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。
TableLayout
表格布局,表的行数由TableRow决定,即创建了多少个TableRow就有多少行,表的列就是在TableRow里面放了几个组件,就有多少列
全局属性也即列属性,有以下3个参数:
android:stretchColumns 设置可伸展的列。该列可以向行方向伸展,最多可占据一整行。
android:shrinkColumns 设置可收缩的列。当该列子控件的内容太多,已经挤满所在行,那么该子控件的内容将往列方向显示。
android:collapseColumns 设置要隐藏的列。
单元格属性,有以下2个参数:
android:layout_column 指定该单元格在第几列显示
android:layout_span 指定该单元格占据的列数(未指定时,为1)
AbsoluteLayout
AbsoluteLayout 绝对布局,即指定x,y的坐标实际开发中,通常不采用此布局格式,因为它的界面代码过于刚性,以至于有可能不能很好的适配各种终端
在这里额外提一下还有一种GridLayout网格布局