RelativeLayout与嵌套的线性布局性能

Jav*_*dez 5 android android-layout

很长一段时间我听说RelativeLayouts很慢.在几次谈话中,我记得听说过这种类型的布局会两次调用onMeasure,并且出于某种原因,这会拖累性能.

但是,我正在学习Udacity的表演课程,我观看了以下视频:

https://www.youtube.com/watch?time_continue=303&v=gK9tdeqqigE

这里,教师使用层次结构查看器工具使用相对布局和嵌套线性布局来比较同一视图组的渲染成本.

在视频中,相对布局是明显的赢家,这与我迄今为止关于该问题所听到的一切相矛盾.

能帮助我了解每种方法哪种情况更好?

谢谢

Bar*_*end 9

这是一个非常广泛的问题,没有一个简单的答案.LinearLayout通常比RelativeLayout更简单(因此更快),但是如果你将多个它们嵌套在彼此内部,并且权重在同一轴上,则LinearLayout会出现问题.然后它必须迭代地划分空间,这需要大量的布局传递(它是如此糟糕,有一个针对此的lint警告).

即使你避免这种情况,那么使用嵌套的LinearLayouts与使用RelativeLayout相比,你仍然会有更深的视图层次结构,所以当LinearLayout更快时,它会在某个时刻达到平衡.

因此,它与所有事物的表现变得相同:绝对确定的唯一方法是衡量并看看会发生什么.