安卓布局管理器大盘点
android stdio的xml布局管理器有六种类型,要用好这六种布局管理器就需要了解他们的特性,否则就会在错误的布局里不断试错苦思冥想都做不到想要的结果,而且往往布局管理器也是新手最需要联系且容易忽略的东西,作为安卓的初学者现在来做一个安卓布局管理器的大盘点
布局管理器的类型
- RelativeLayout (相对布局管理器)
- LinearLayout (线性布局管理器)
- FrameLayout(帧布局管理器)
- TableLayout(表格布局管理器)
- AbsoluteLayout (绝对布局管理器)
- GridLayout(网格布局管理器)
其中第5项绝对布局管理器在 Android 2.0 中被标记为已过期
在Android 4.0版本提供了新的布局管理器也就是第 6 项 GridLayout
RelativeLayout,LinearLayout,FrameLayout,AbsoluteLayout,GridLayout 直接继承自ViewGroup
TableLayout直接继承自LinearLayout
1.RelativeLayout
通过相对定位的方式调整组件的位置
下面列出几个值得注意的xml属性
xml属性 | 用法 |
---|---|
android : gravity | 设置管理器中各组件的对其方式 |
android : layout_above | 应该填写别的组件的id,表示此组件位于别的组件的上面 |
android : layout_alignBottom | 应该填写别的组件的id,表示此组件与别的组件的下边对齐 |
android : layout_alignParentLeft | 属性值为boolean,表示是否与管理器的左边对其 |
android : layout_centerHorizontal | 属性值为boolean,表示是否在水平居中的位置 |
2.LinearLayout
建立xml布局文件默认的布局管理器
同时也是比较容易,能够用于多嵌套的布局管理器
线性布局管理器的特点就是通过设置android:orientation的值(vertical 或 horizontal)来设置该布局管理器内的组件是垂直布局还是水平布局(默认值为 vertical)
xml属性 | 用法 |
---|---|
android:layout_weight | 设置组件占剩余空间的权重。当一个组件的权重为 0 时,它将保持它组件原本的大小。当有两个组件的权重都为 1 时,他们将各获取剩余空间的二分之一 |
其中有“layout_为前缀表示其组件在父元素内如何布局,没有则表示该组件内的内容如何布局
3.FrameLayout
帧布局管理器可以实现画面的叠加,犹如贴图一般,贴在上面的图画会遮挡住下面的视图
该管理器最常用在视频暂停
xml属性 | 用法 |
---|---|
android : foreground | 设置前景图像 |
一般来说,该布局管理器先设置的组件会出现在底下,后设置的组件将会覆盖先设置的组件。
4.TableLayout
与html的表格标签类似。通过添加< TableRow >标记添加一个容器,为表格增加一行
再在< TableRow >中添加组件
管理器的列数由全部行中最大的组件个数决定
该管理器适用于登录界面或是比较规整的列表组件
5.GridLayout
网格布局管理器和表格布局管理器类似,但是和表格布局管理器最大的不同是它可以跨行显示组件
xml属性 | 用法 |
---|---|
android : columnCount | 定义网格列数 |
android : rowCount | 定义网格行数 |
android : orientation | 定义没有放入网格中的组件是水平布局还是垂直布局 |
android : layout_column | 组件位于网格第几列 |
android : layout_columnSpan | 组件跨越多少列(索引从0开始) |
android : layout_row | 组件位于网格第几行 |
android : layout_rowSpan | 组件跨越多少行(索引从0开始) |