布局
概念
布局是子控件在容器中组织方式和排列位置的规划。
内涵
1,把界面中的控件按照某种规律摆放在指定的位置
2,每种布局对应一个容器,都有各自的摆放特点
3,常用布局(Layout)的父类都是ViewGroup 容器视图
帧布局、网格布局、表格布局、绝对布局
帧布局
什么是帧布局
定义
FrameLayout是按照层次堆叠在屏幕上的布局容器。
内涵
1.FrameLayout是最简单的布局了。
2.所有放在布局里的控件,都按照层次堆叠在屏幕的左上角。后加进来的控件覆盖前面的控件。
外延
HorizontalScrollView
ScrollView
帧布局的常用属性
设置该帧布局容器的前景图像 : android:foreground="@drawable/red"
设置前景图像显示的位置 : android:foregroundGravity=“right|bottom”
表格布局
定义
TableLayout是表格形式的布局容器。
内涵
TableLayout表格布局中,允许我们使用表格的方式来排列视图组件,使用行与列的方式来排列。因此,表格布局模型以行列的形式管理子控件。
网格布局
定义
GridLayout是网格矩阵形式的布局容器。
内涵
1.GridLayout 是以矩形网格形式对容器的组件进行布置。
2,把容器按行列分成大小相等的矩形网格,一个网格中放置一个组件,组件宽高自动撑满网格。
绝对布局
定义
AbsoluteLayout是所有子视图按照绝对位置进行摆放的布局容器。
内涵
1, AbsoluteLayout绝对布局需要指定子视图准确的x/y坐标值,并显示在屏幕上。
2,AbsoluteLayout绝对布局该布局没有屏幕边框,允许元素之间互相重叠。
外延
WebView
RelativeLayout
什么是相对布局
概念
RelativeLayout是所有子视图按照相对位置进行摆放的布局容器。
内涵
通过当前控件与兄弟控件或是父控件之间的相对位置,从而达到控制控件位置的目的
相对布局的属性使用
控件相对于父布局容器的位置
引入
班级学生的座位安排(把座位安排的方式作为关联点)
属性
居中对齐
属性值
true/false
相对于父布局容器, 水平居中
android:layout_centerHorizontal = “true/false”
相对于父布局容器, 垂直居中
android:layout_centerVertical = “true/false”
相对于父布局容器, 水平垂直居中
android:layout_centerInParent = “true/false”
位置对齐
属性值
true/false
相对于父布局容器的右边对齐
android:layout_alignParentRight=“true/false”
相对于父布局容器的左边对齐
android:layout_alignParentleft=“true/false”
相对于父布局容器的顶部对齐
android:layout_layout_alignParentTop=“true/false”
相对于父布局容器的底部对齐
android:layout_layout_alignParentBottom=“true/false”
特点
相对于父容器布局的对齐方式, 属性值都是 true/false
控件相对于兄弟控件的位置
引入
班级学生的座位安排(把座位安排的方式作为关联点)
属性
与兄弟控件放置的位置关系
属性值
@id/兄弟控件的id
控件显示在兄弟控件button_id的左侧
android:layout_toLeftOf="@id/buton_id"
控件显示在兄弟控件button_id的右侧
android:layout_torightOf="@id/buton_id"
控件显示在兄弟控件button_id的上方
android:layout_above="@id/buton_id"
控件显示在兄弟控件button_id的下方
android:layout_below="@id/buton_id"
与兄弟控件的对齐方式
属性值
@id/兄弟控件的id
控件摆放在兄弟控件button_id的左侧
android:layout_alignLeft = “@id/button_id”
控件摆放在兄弟控件button_id的右侧
android:layout_alignRight = “@id/button_id”
控件摆放在兄弟控件button_id的顶部对齐
android:layout_alignTop="@id/button_id"
控件摆放在兄弟控件button_id的底部对齐
android:layout_alignBottom= “@id/button_id”
特点
相对于兄弟控件的位置和对齐方式, 属性值都是 @id/兄弟控件的id