這期是 HenCoder 佈區域性分的第二期:重寫 onMeasure() 來全新定製自定義 View 的尺寸。
簡介
這期雖然距離上期的時間比較久,但主要是我的個人原因,而不是因為這期的內容難。這期的內容還是比較簡單的,主要是一些概念和原理上的東西,實操方面非常容易,所以和上期一樣,主要把視訊看看就差不多啦:
總結
和上期一樣,這期同樣是視訊之後就直接是總結。
因為關鍵點全都在視訊裡講清楚了,所以這裡只總結一下視訊中的關鍵點:
全新定製尺寸和修改尺寸的最重要區別
需要在計算的同時,保證計算結果滿足父 View 給出的的尺寸限制
父 View 的尺寸限制
- 由來:開發者的要求(佈局檔案中
layout_
打頭的屬性)經過父 View 處理計算後的更精確的要求; - 限制的分類:
UNSPECIFIED
:不限制AT_MOST
:限制上限EXACTLY
:限制固定值
全新定義自定義 View 尺寸的方式
- 重新
onMeasure()
,並計算出 View 的尺寸; - 使用
resolveSize()
來讓子 View 的計算結果符合父 View 的限制(當然,如果你想用自己的方式來滿足父 View 的限制也行。
練習專案
沒有練習專案。
最近我的工作狀態一直很不好,現在也還沒有完全恢復,所以各位,這次就沒有練習專案了。
下期預告
下期是佈區域性分的最後一期:重寫 onMeasure()
和 onLayout()
來定製 ViewGroup
的內部佈局。
覺得贊?
那就關注一下?↓↓↓