measure()和getMeasuredWidth

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等窗口大小預估。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章