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等壹些技巧。