HenCoder UI 部分 2-2 全新定義 View 的尺寸

扔物線發表於2017-12-28

這期是 HenCoder 佈區域性分的第二期:重寫 onMeasure() 來全新定製自定義 View 的尺寸。

簡介

這期雖然距離上期的時間比較久,但主要是我的個人原因,而不是因為這期的內容難。這期的內容還是比較簡單的,主要是一些概念和原理上的東西,實操方面非常容易,所以和上期一樣,主要把視訊看看就差不多啦:

在頁面裡看不到視訊的,可以點選 這裡 去 B 站看;在海外看得卡的,可以點選 這裡 去 YouTube 看。

總結

和上期一樣,這期同樣是視訊之後就直接是總結。

因為關鍵點全都在視訊裡講清楚了,所以這裡只總結一下視訊中的關鍵點:

全新定製尺寸和修改尺寸的最重要區別

需要在計算的同時,保證計算結果滿足父 View 給出的的尺寸限制

父 View 的尺寸限制

  1. 由來:開發者的要求(佈局檔案中 layout_ 打頭的屬性)經過父 View 處理計算後的更精確的要求;
  2. 限制的分類:
    1. UNSPECIFIED:不限制
    2. AT_MOST:限制上限
    3. EXACTLY:限制固定值

全新定義自定義 View 尺寸的方式

  1. 重新 onMeasure(),並計算出 View 的尺寸;
  2. 使用 resolveSize() 來讓子 View 的計算結果符合父 View 的限制(當然,如果你想用自己的方式來滿足父 View 的限制也行。

練習專案

沒有練習專案。

最近我的工作狀態一直很不好,現在也還沒有完全恢復,所以各位,這次就沒有練習專案了。

下期預告

下期是佈區域性分的最後一期:重寫 onMeasure()onLayout() 來定製 ViewGroup 的內部佈局。

覺得贊?

那就關注一下?↓↓↓

HenCoder UI 部分 2-2 全新定義 View 的尺寸

相關文章