Android -------- RelativeLayout 和 LinearLayout 的性能分析

时间:2023-03-08 19:06:50

布局的绘制角度

  • RelativeLayout不如LinearLayout快的根本原因是:

      RelativeLayout需要对其子View进行两次measure过程,
    而LinearLayout则只需一次measure过程,
    所以显然会快于RelativeLayout,
  • 当LinearLayout有weight属性时:

      如果LinearLayout中有weight属性,则也需要进行两次measure,
    即便如此,应该仍然会比RelativeLayout的情况好一点。

子控件的布局方式角度

  • RelativeLayout与其子view的高度问题:

      RelativeLayout的子View如果高度和RelativeLayout不同,
    则会引发效率问题,当子View很复杂时,这个问题会更加严重。
    所以如果可以,尽量使用padding代替margin。
  • 不适用使用RelativeLayout的情况:

      在不影响层级深度的情况下,
    使用LinearLayout和FrameLayout而不是RelativeLayout。
  • 使用RelativeLayout的情况:

      因为复杂的View嵌套对性能的影响会更大一些,
    所以如果可以,采用尽量少的View层级来表达布局以实现性能最优。