相对布局与嵌套线性布局的性能比较

5
长期以来,我听说RelativeLayout很慢。在几次谈话中,我记得听说这种类型的布局会调用onMeasure两次,由于某种原因会影响性能。
然而,我正在Udacity上学习一门性能课程,并观看了以下视频:https://www.youtube.com/watch?time_continue=303&v=gK9tdeqqigE
在这里,讲师使用层级查看器工具比较了使用相对布局和嵌套线性布局的同一视图组的渲染成本。
在视频中,RelativeLayout是明显的赢家,这与我到目前为止听到的所有信息都相矛盾。
请问您能否帮助我理解在哪些情况下使用每种方法更好?
谢谢

可能是重复的问题:Android:RelativeLayout比LinearLayout更昂贵吗? - Suhaib
在Android开发文档中,他们还有一篇与此主题相关的文章-> https://developer.android.com/training/improving-layouts/optimizing-layout - Haomin
1个回答

10

这是一个非常广泛的问题,没有单一、简单的答案。LinearLayout通常比RelativeLayout更简单(因此更快),但如果你在同一轴上嵌套多个LinearLayout并使用权重,则会出现问题。然后它必须逐步划分空间,这需要很多布局传递(这种情况下还有一个lint警告)。

即使避免了这种情况,使用嵌套LinearLayout仍然会比使用RelativeLayout创建更深的视图层次结构,因此虽然LinearLayout更快,但在某些时候会达到平衡点。

所以这变成了所有性能问题都要考虑的事情:唯一确定的方法就是测量并查看发生了什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接