常用布局管理器详解-结合开发文档docs
适用于"所有分辨率屏幕"的解决方法——使用布局管理器
常用的布局管理器
- RelativeLayout(相对布局管理器)
- LinearLayout(线性布局管理器)
- FrameLayout(帧布局管理器)
- TableLayout(表格布局管理器)
- GridLayout(网格布局管理器)
- {过期}AbsoluteLayout(绝对布局管理器)【绝对位置布局——不利于屏幕自适应】
1.RelativeLayout
选定一个参考点(父容器/兄弟组件),其他组件相对于此参考点布局
属性 | 释义 | 固定写法 |
---|---|---|
xmlns:android=“网址” | 表示android命名空间 | 固定写法 |
xmlns:tools=“网址” | 表示tools命名空间 | 可删除 |
android:gravity | 设置布局管理器中各子组件的摆放方式 | docs文档有标识 |
android:ignoregravity | 设置哪项组件不受上述属性的影响 |
相对布局管理器的内部类RelativeLayout.LayoutParams
网址https://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams?hl=en
属性 | 释义 | 说明 |
---|---|---|
android:layout_above | 以下四个属性用于指定组件相对于参考位置的属性 | |
android:layout_below | ||
android:layout_toLeftOf | ||
android:layout_toRightOf | ||
android:layout_alignParentBottom | 以下四个属性设置组件与父容器左-右-底-顶对齐 | |
android:layout_alignParentLeft | ||
android:layout_alignParentRight | ||
android:layout_alignParentTop | ||
android:layout_alignBottom | 以下四个属性设置组件与某个组件左-右-底-顶对齐 | |
android:layout_alignLeft | ||
android:layout_alignRight | ||
android:layout_alignTop |
子类的使用方法是:
- 在子组件文件中添加上述属性
- 属性值为@+id
- 或者,true
2.LinearLayout
将放入其中的组件按照垂直或水平的方向排列的:
垂直排列:组件1-组件2-组件3……,从上到下;【vertical】
水平排列:组件1-组件2-组件3……,从左到右;【horizontal】
- 注意:当组件一个挨着一个排列到末端边缘时,剩下的组件是不会显示出来的
参考文档:LinearLayout
属性 | 释义 | 说明 |
---|---|---|
android:orientation | 设置组件排列方式 | 属性值是vertical/horizontal |
android:gravity | 设置显示位置 | |
3.FrameLayout
实现层叠放置组件
- 实现层叠效果——例如,拖动兔子
属性 | 释义 | 说明 |
---|---|---|
android:foregroundGravity | 设置前景图像的位置 | |
android:foreground | 设置前景图像 | 应该是view类的XML属性,反义词是android:background |
4.TableLayout
表格的
- 行,有几个表示有几行
- 列<任意组件>,有几个表示有几列
collapse Columns——折叠列(隐藏)
stretch Columns——拉伸(自适应变长)
shrink Columns——收缩()
- 以上属性值都是列的序号,从第0列开始数
- 多列使用逗号隔开,“0,3”
5.GridLayout
网格布局管理器(更灵活)>=表格布局管理器
表格布局管理器只能跨列显示,但是网格布局管理器即可跨行业可跨列
表格布局管理器中内容超出部分不会显示,但是网格布局管理器会显示
属性 | 释义 | 说明 |
---|---|---|
android:columnCount | ||
android:orientation | ||
android:rowCount |
android:layout_column
android:layout_columnSpan
android:layout_columnWeight
android:layout_gravity
android:layout_row
android:layout_rowSpan
android:layout_rowWeight
23.布局管理器的嵌套
- 根布局管理器必须包含xmlns属性;
- 在一个布局文件中,最多只能有一个根布局管理器,如果需要有多个还需要使用一个根布局管理器将它们括起来;也就是根布局管理器不能是并列关系,而是子项并列关系
- 不能嵌套太深,否则效率低下