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的控件的右边缘对齐,默认置于父窗口最上面,会覆盖最上面的控件 |