一、线性布局(LinearLayout)
线性布局可以让布局中的组件一个接着一个的连在一起水平对齐(orientation="vertical")或者垂直对齐(orientation="horizontal"),写游戏界面时会限制动作,所以不推荐游戏界面中使用
特点:线性布局不会主动换行,当几个组件水平分布,但是这一行放不下时,多余的不会显示
二、绝对布局(AbsoluteLayout)
绝对布局没有布局控制,组件的大小和位置全部由开发人员用x,y坐标来一一定义,由于手机的的屏幕大小和分辨率都存在差别,所以用绝对布局写的程序在不同手机上的显示效果可能会有变动,不推荐使用该布局方式
三、相对布局(RelativeLayout)
线性布局是组件与组件之间的关系,设定一个组件的位置,然后其他组件可以根据该上下左右的位置关系来进行放置
特点:使用相对布局需要给每个组件都给定一个id,方便组件位置的布局
四、帧布局(FrameLayout)
帧布局的作用是将组件一个个的叠加在一起,但是不能将位于下面的组件移到上面。帧布局顾名思义,给加入该布局的组件创建一片空白区域(称为一帧),每个组件占一帧,所以组件可以叠加在一起。如果给六个相同的组件,组件的面积大小逐渐减少,并且给每个组件一种背景颜色,让每个组件的背景颜色一直变化,就可以产生霓虹灯效果
五、网格布局 (GridLayout)
网格布局格式设置整体布局的行数(rowCount)和列数(columnCount),效果就像棋盘一样,加入其中的控件每个控件占一个格子,当然,网格布局可以设置一个控件同时横跨几列(layout_columnSpan)也可以同时横跨几行(layout_rowSpan)。也可以指定控件位于第几行(layout_row)第几列(layout_column),精准的确定位置
六、表格布局(TableLayout)
表格布局继承线性布局,本质是和线性布局差不多的,不需要明确多少行和多少列,直接在表格布局里添加一个TableRow就是一个行或者列。在线性布局中添加一个表格布局的作用和往线性布局中镶嵌一个线性布局的作用是相同的。此外表格布局还有两个xml属性是线性布局没有的,shrinkColumns设置组件允许收缩和StrechColumns设置组件允许拉伸。