没有合适的资源?快使用搜索试试~ 我知道了~
Android移动应用开发相对布局RelativeLayout的特点.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 186 浏览量
2022-07-10
08:01:46
上传
评论
收藏 224KB PDF 举报
温馨提示
试读
1页
Android移动应用开发相对布局RelativeLayout的特点.pdf 学习资料 复习资料 教学资源
资源推荐
资源详情
资源评论
Android 移动应用开发相对布局 RelativeLayout 的特点
范美英
(北京信息职业技术学院)
摘要:本文简要地描述了 RelativeLayout 布局的特点,并对其与 LinearLayout 的布局效率
进行了简要比对,得出了 RelativeLayout 布局的使用场合。
关键词:RelativeLayout9相对布局9android
RelativeLayout 允许元素指定他们相对于其它元素或父元素的位置(通过 ID 指定)。因此,可以
把组件以右对齐,或顶端对齐、或底部对齐,或置于屏幕中央等形式来排列。
元素按顺序排列,因此如果第一个元素在屏幕中央,那么相对于这个元素的其它元素将以屏幕中央
的相对位置来排列。如果使用 XML 来指定这个 layout,你在定义它之前,被关联的元素必须定义。
下面解决一个问题:当 RelativeLayout 和 LinearLayout 分别作为 ViewGroup,表达相同布局时
绘制在屏幕上时谁更快一点呢?
View 的 绘 制 , 从 ViewRoot 的 performTraversals ( ) 方 法 开 始 依 次 调 用
perfromMeasure、performLayout 和 performDraw 这三个方法。这三个方法分别完成顶级 View 的
measure、layout 和 draw 三大流程,其中 perfromMeasure 会调用 measure,measure 又会调用
onMeasure,在 onMeasure 方法中则会对所有子元素进行 measure,这个时候 measure 流程就从父
容器传递到子元素中了,这样就完成了一次 measure 过程,接着子元素会重复父容器的 measure,如
此 反 复 就 完 成 了 整 个 View 树 的 遍 历 。 同 理 , performLayout 和 performDraw 也 分 别 完 成
perfromMeasure 类 似 的 流 程 。 通 过 这 三 大 流 程 , 分 别 遍 历 整 棵 View 树 , 就 实 现 了
Measure,Layout,Draw 这一过程,View 就绘制出来了。
从测试数据来看无论使用 RelativeLayout 还是 LinearLayout,layout 和 draw 的过程两者相差无
几,考虑到误差的问题,几乎可以认为两者不分伯仲,但是 Measure 的过程 RelativeLayout 却比
LinearLayout 慢了一大截。这是为什么呢?根据源码我们发现 RelativeLayout 会对子 View 做两次
measure。首先 RelativeLayout 中子 View 的排列方式是基于彼此的依赖关系,而这个依赖关系可能
和布局中 View 的顺序并不相同,在确定每个子 View 的位置的时候,就需要先给所有的子 View 排序一
下。又因为 RelativeLayout 允许 A,B 2 个子 View,横向上 B 依赖 A,纵向上 A 依赖 B。所以需要横
向纵向分别进行一次排序测量。
综 上 所 述 , 在 不 影 响 层 级 深 度 的 情 况 下 , 使 用 LinearLayout 和 FrameLayout 而 不 是
RelativeLayout 。 然 而 为 什 么 Google 给 开 发 者 默 认 新 建 了 个 RelativeLayout , 而 自 己 却 在
DecorView 中用了 LinearLayout?这是因为 DecorView 的层级深度是已知而且固定的,上面一个标
题 栏 , 下 面 一个 内 容 栏 。 采 用 RelativeLayout 并 不 会 降 低 层 级 深 度 , 所 以 此 时 在 根 节 点 上 用
LinearLayout 是效率最高的。而之所以给开发者默认新建了个 RelativeLayout 是希望开发者能采用尽
量少的 View 层级来表达布局以实现性能最优,因为复杂的 View 嵌套对性能的影响会更大一些。
参考文献( 资源)
[1] Android 中 RelativeLayout 和 LinearLayout 性能分析.
jianshu /p/8a7d059da746
,
2016.5.23
Android 移动应用开发相对布局 RelativeLayout 的特点
资源评论
努力搬砖的小王
- 粉丝: 16
- 资源: 7706
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功