天天看点

【Android】六大布局——LinearLayout、RelativeLayout、TableLayout、AbsoluteLayout、FrameLayout、GridLayout

Android中有四大组件六大布局,他们分别是:

LinearLayout(线性布局)

RelativeLayout(相对布局)

TableLayout(表格布局)

AbsoluteLayout(绝对布局)

FrameLayout(帧布局)

以及有时被别人抛弃而总结成五大布局的GridLayout(网格布局)

通常情况下,使用得比较多的是LinearLayout和RelativeLayout。

LinearLayout

顾名思义就是让控件呈水平或竖直方向上线性排列。

LinearLayouy有三个必备属性:

android:layout_width=”match_parent/wrap_content”

android:layout_height=”match_parent/wrap_content”

android:orientation=”vertical/horizontal”

- match_parent : 铺满父控件

- wrap_content:大小刚好适应控件的大小

- vertical:竖直方向

- horizontal:水平方向

LinearLayouy其他常见可选属性:

1. android:gravity=”center_vertical|center_horizontal”

center_vertical:竖直居中

center_horizontal:水平居中

当我们想要放在屏幕正中央的时候,如果我们想在写一条android:gravity会发现这是不可行的,此时我们应该使用的参数是center_vertical|center_horizontal

2. android:layout_gravity=”bottom”

位于父控件的什么位置,例如bottom就是位于父控件的底部

3. android:layout_weight=”1”

相对比重,例如三个Button都设置android:layout_weight=”1”

,那么他们的比重就是1:1:1那么它们的宽度就会按1:1:1的比例铺满整个父控件的宽度

4. android:layout_marginLeft=”xx dp”

本控件往左偏移xxdp

5. android:layout_marginRight=”xx dp”

本控件往右偏移xxdp

RelativeLayout

相对布局就是控件和控件之间利用相对位置来描述彼此之间的位置。

RelativeLayout有两个必备属性:

android:layout_width

android:layout_height

RelativeLayout其他常见可选属性:

命令 参数 功能
android:layout_alignTop id 将给定控件的顶部边缘与给定ID控件的顶部对齐,并置于父窗口最左边,会覆盖最左边的控件
android:layout_alignLeft id 将该控件的左边缘与给定ID控件的左边缘对齐,并置于父窗口最上边,会覆盖最上边的控件
android:layout_alignRight id 将该控件的右边缘与给定ID控件的右边缘对齐,并置于父窗口最上边,会覆盖最上边的控件
android:layout_alignBottom id 将该控件的底部边缘与给定ID控件的底部边缘对齐,并置于父窗口最左边,会覆盖最左边的控件
android:layout_alignBaseline id 该控件的baseline和给定ID的控件的baseline对齐,并置于父窗口最左边,会覆盖最左边的控件
android:layout_alignParentTop bool 如果该值为true,则将控件的顶部与父控件的顶部对齐,默认置于父窗口最左上,会覆盖最左上的控件
android:layout_alignParentLeft bool 如果该值为true,则将该控件的左边与父控件的左边对齐,默认置于父窗口最左上,会覆盖最左上的控件
android:layout_alignParentRight bool 如果该值为true,则将该控件的右边与父控件的右边对齐,默认置于父窗口最右上,会覆盖最右上的控件
android:layout_alignParentBottom bool 如果该值为true,则将该控件的底部和父控件的底部对齐,默认置于父窗口最左下,会覆盖最左下的控件
android:layout_above id 将该控件的底部至于给定ID的控件之上,但不会左对齐,默认置于父窗口最左边,会覆盖最左边的控件
android:layout_below id 将该控件的顶部至于给定ID的控件之下,但不会左对齐,默认置于父窗口最左边,会覆盖最左边的控件
android:layout_toLeftOf id 将该控件的右边缘和给定ID的控件的左边缘对齐,默认置于父窗口最上面,会覆盖最上面的控件
android:layout_toRightOf id 将该控件的左边缘和给定ID的控件的右边缘对齐,默认置于父窗口最上面,会覆盖最上面的控件