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

2021-07-03 02:06:08 字數 708 閱讀 5821

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()方法

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

Android自定義View 自定義元件

自繪控制項也分兩種,自定義元件和自定義容器,自定義元件是繼承view類,自定義容器時繼承viewgrounp 今天主要分析下自定義元件 還是舉個例子來的實際些,假如我們要畫乙個最簡單的textview,首先想到的就是canvas.drawtext 方法,怎麼畫了?還是得一步一步來 1 寫乙個myte...

Android自定義View 一 View的測量

想要讓系統繪製出你所需要的圖形,就必須告訴系統view的大小,所以,在繪製view時,先實現view的onmesure 方法。在測量view之前,要先了解measurespec這個類,measurespec物件中包含了測量的模式和測量的大小 measurespec.exactly 精確模式 當我們將...

Android自定義View實現

android自定義view實現很簡單 繼承view或者其子類,重寫建構函式 ondraw,onmeasure 等函式,根據繼承的類的不同可能有所不同。如果自定義的view需要有自定義的屬性,需要在values下建立attrs.xml。在其中定義你的屬性。在使用到自定義view的xml布局檔案中需要...