android的佈局分兩個階段,先measure()後requestLayout(),
測量的三種模式:
- UNSPECIFIED: 不限定
- EXACTLY: 固定
- AT_MOST:最多
LinearLayout 調用measure(EXACTLY 240,UNSPECIFIED)來得到高度。
View.measure(widthMeasureSpec,heightMeasureSpec),需要的兩個spec是Mode和限定值計算出來的:
View.MeasureSpec.makeMeasureSpec(maxW,View.MeasureSpec.AT_MOST)
measure()後調用getMeasuredWidth()和getMeasuredHeight()得到測量後的值。
此法可用於Tip等窗口大小預估。