LinearLayout:被称为线性布局,分为水平和垂直,设置的垂直或水平的属性值,来排列全部的子元素。全部的子元素都被堆放在其他元素之后,因此一个垂直列表的每一行仅仅会有一个元素,而无论他们有多宽,而一个水平列表将会仅仅有一个行高(高度为最高子元素的高度加上边框高度)。LinearLayout保持子元素之间的间隔以及互相对齐(相对一个元素的右对齐、中间对齐或者左对齐)。
FrameLayout:被称为框架布局,预先在屏幕中预留空白处,之后你能够在当中填充一个单一对象。比方,一张你要公布的图片。所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或所有挡住(除非后一个子元素是透明的)。
RelativeLayout:相对布局,可指定某元素相对于其他的元素的位置,能够通过layout_below="相对控件"。能够以右对齐,或上下,或置于屏幕*的形式来排列两个元素。元素按顺序排列,因此假设第一个元素在屏幕的*,那么相对于这个元素的其他元素将以屏幕*的相对位置来排列。假设使用XML 来指定这个 layout ,在你定义它之前,被关联的元素必须定义。
TableLayout:表格布局,将子元素的位置分配到行或列中。一个TableLayout 由很多的TableRow 组成,每一个TableRow 都会定义一个 row (其实,你能够定义其他的子对象,这在以下会解释到)。TableLayout 容器不会显示row 、cloumns 或cell 的边框线。每一个 row 拥有0个或多个的cell ;每一个cell 拥有一个View 对象。表格由列和行组成很多的单元格。表格同意单元格为空。单元格不能跨列,这与HTML 中的不一样。
AbsoluteLayout:坐标布局,你给对应的控件通过x,y坐标来设定,(0, 0)为左上角,当向下或向右移动时,坐标值将变大。AbsoluteLayout 没有页边框,同意元素之间互相重叠(虽然不推荐)。我们通常不推荐使用 AbsoluteLayout ,除非你有正当理由要使用它,由于它使界面代码太过刚性,以至于在不同的设备上可能不能非常好地工作