當前位置:編程學習大全網 - 源碼破解 - 不廢話簡述RelativeLayout和LinearLayout及FrameLayout性能分析

不廢話簡述RelativeLayout和LinearLayout及FrameLayout性能分析

1.RelativeLayout會讓子View調用2次onMeasure,LinearLayout 在有weight時,也會調用子View2次onMeasure

2.RelativeLayout的子View如果高度和RelativeLayout不同,則會引發效率問題,當子View很復雜時,這個問題會更加嚴重。如果可以,盡量使用padding代替margin。

3.在不影響層級深度的情況下,使用LinearLayout和FrameLayout而不是RelativeLayout。

最後再思考壹下文章開頭那個矛盾的問題,為什麽Google給開發者默認新建了個RelativeLayout,而自己卻在DecorView自己是FrameLayout但是它只有壹個子元素是屬於LinearLayout。因為DecorView的層級深度是已知而且固定的,上面壹個標題欄,下面壹個內容欄。采用RelativeLayout並不會降低層級深度,所以此時在根節點上用LinearLayout是效率最高的。而之所以給開發者默認新建了個RelativeLayout是希望開發者能采用盡量少的View層級來表達布局以實現性能最優,因為復雜的View嵌套對性能的影響會更大壹些。

4.能用兩層LinearLayout,盡量用壹個RelativeLayout,在時間上此時RelativeLayout耗時更小。另外LinearLayout慎用layout_weight,也將會增加壹倍耗時操作。由於使用LinearLayout的layout_weight,大多數時間是不壹樣的,這會降低測量的速度。這只是壹個如何合理使用Layout的案例,必要的時候,妳要小心考慮是否用layout weight。總之減少層級結構,才是王道,讓onMeasure做延遲加載,用viewStub,include等壹些技巧。

  • 上一篇:服務器分類有哪幾種?
  • 下一篇:天津哪家做宣傳冊設計的好啊
  • copyright 2024編程學習大全網