使用大量嵌套的 RelativeLayouts 时会出现性能问题。
例如,如果我们有一些 RelativeLayout 作为 UI 根,并且每个容器(按钮、标签、textview、imageview)都是基于 RelativeLayout + Android 的组件(例如 aButton = RelativeLayout + ImageView + TextView),那么在 4 的复杂视图中按钮、3 个图像和 6 个标签,我们得到了大约 15 个嵌套的 RelativeLayouts。
RelativeLayout 有一个非常复杂的 onMeasure 方法,它计算每个孩子的大小以确定布局的大小。计算 15-20 个嵌套 RelativeLayouts 的复杂视图的大小大约需要 5 秒,这太多了。onMeasure 是所有调用中最昂贵的,即使绘图完成的速度也比测量快得多。<=UPD=>
为了防止出现使用原生 android 视图构建复杂事物的建议:
需要能够将所有内容添加到所有内容中。这就是为什么每个容器都必须不仅仅是 View,而是 ViewGroup。并且像重力和对齐这样的 RelativeLayout 功能也可以提供很多帮助,这就是为什么要使用大量的 RelativeLayouts。
<=/UPD=>
有人遇到过这些性能问题吗?
应该用其他布局替换RelativeLayout 解决问题吗?
或者删除所有这些嵌套布局是解决问题的唯一方法?
有谁知道可以嵌套多少布局而不会出现一些性能问题?