Android 自定義view 的繪製時機 問題

Android 自定義view 很多的開發者都用過,自定義view主要的是三個方法 onmeasure onlayout ondraw  

先要測量子view的大小 然後會在layout中將view佈置到相應的位置上去

根據官方的說法 自定義的view 會在需要的時候繪製 , 那麼問題來了 什麼時候是需要的時候?

比如 我在自定義了一個view  很簡單 就是在linearlayout中動態添加四個textview 然後我在fragment中使用自己定義的這個view 我還要在自定義的view中設置一個狀態 在view繪製完成之後 根據我傳入的狀態值 來給textview 添加不同的字體大小和顏色 

那麼問題來了 我應該在上面時候調用 這個setState方法 來設置狀態 也就是說必須要在自定義的view 繪製完成之後 不然系統一定會拋出空指針異常

在oncreateview()中通過findbyid 找到自定義的view之後 直接設置 這個值可以嗎?有興趣的同學可以試一下 百分百空指針!

那麼問題來了

自定義的view在被引用時 會在什麼時候調用?

答案就是 在onResume方法中!

也就是 findbyid 並沒有真正的去執行 onmeasure 等方法 因爲按照官方的說法是 會在需要的時候繪製!

這個需要的時候 就是當view被顯示出來的時候 這個時機對應的就是onResume()方法

以上就是今天要寫的內容!下班走人!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章