在LinearLayout中有垂直/水平兩個方向的布局,任壹方向的布局思想都是相同的,所以我們只需要具體分析其中壹個方向即可,另壹個方向可以類比,在View和ViewGroup中的布局有三大流程,分別是onMeasure、onLayout和onDraw,在LinearLayout中onLayout和onDraw兩個流程基本都是模板化的寫法,而且LinearLayout布局簡單,無論是垂直方向還是水平方向都是依次排列每個childView的,分析起來並不復雜,大家可以自行分析。但是onMeasure流程就比較復雜,分為兩種情況:不使用layout_weight屬性,每個childView按照自身的情況計算本身的大小即可。使用layout_weight屬性,需要根據LinearLayout的剩余空間和layout_weight的比例,計算每個childView的大小。