对于安卓开发者而言,熟悉安卓五大布局相当重要,因为这直接影响了产品的界面。若不熟悉其代码,则无法写出好的界面,用户的体验就会大打折扣。
Android的五大布局分别是LinearLayout(线性布局),FrameLayout(单帧布局),RelativeLayout(相对布局),AbsoluteLayout(绝对布局)和TableLayout(表格布局)
安卓五大布局结构如下(图片来自网络):
1.LinearLayout(线性布局):
LinearLayout线性布局按照垂直或水平的顺序依次排列子元素。其中,垂直排列(Vertical)是一个N行单列的结构,每行只有一个元素;水平排列(Horizonal)是单行N列的结构。如果要搭建多行多列的结构,可以嵌套布局。如:搭建两行两列的结构,通常先垂直排列两个元素,每个元素中包含一个LinearLayout进行水平排列。
LinearLayout的子元素属性:android:layout_weight,用于描述该子元素在剩余空间中占有的大小比例,即比重。遵循数值越低,比重越高的原则。如:加入一行中有2个文本框,其android:layout_weight值分别为1和2,那么第一个文本框将占空间的2/3,第二个文本框将占空间的1/3。
2.FrameLayout(单帧布局):
五大布局中最为简单的布局。在该布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们都被放置在该区域的左上角,后面的元素将覆盖前面的元素。
3.AbsoluteLayout(绝对布局):
在绝对布局中子元素的android:layout_x和android:layout_y属性将生效,用于描述该子元素的坐标位置。该布局中子元素可以相互重叠。一般不用该布局,由于过于死板,无法适配各种设备。
4.RelativeLayout(相对布局):
相对布局按个子元素之间的位置关系完成布局。在该布局中,子元素中与位置相关的属性将生效,如:android:layout_below等。由于其灵活性,适用于一些复杂界面的布局。
常用位置属性(来自网络):
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 —— 该组件是否垂直居中
5.TableLayout(表格布局):
表格布局适用于多行多列的布局格式。一个TableLayout由许多TableRow组成,一个TableRow代表TableLayout中的一行。其中TableRow为LinearLayout的子类。