【问题标题】:RelativeLayout vs nested Linear Layout performance相对布局与嵌套线性布局性能
【发布时间】:2023-03-09 16:54:01
【问题描述】:

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

但是,我正在 udacity 参加表演课程,并观看了以下视频:

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

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

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

能否请您帮助我了解每种方法在哪种情况下更好?

谢谢

【问题讨论】:

标签: android android-layout


【解决方案1】:

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

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

因此它与所有事物的性能一样:唯一确定的方法是衡量并看看会发生什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    相关资源
    最近更新 更多