原文:https://blog.csdn.net/SEU_Calvin/article/details/72855537
我覺得寫得很好,有幾個方法我之前用過,但是僅限於用過
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0.構造器
除了構造器之外,還有讀取項目了相應的attr信息
1.onFinsihInflate
當view 及其xml文件中加載完成之後觸發的調用
2.onVisbilityChanged
在當前view及上級view可見性發生變化是調用
3.onAttachedTowindow
當view被附着到一個窗口時觸發,在onResume之後調用
4.onMeasure
測量view 的大小
5.onsizechanged
在measure方法之後且測量大小與之前不一樣的時候被調用
6.onLayout
爲子view分配位置時調用
7.ondraw
渲染本view的內容
8.onWindowFoucusChanged
該方法也可能在繪製過程中被調用,具體是在包含當前View的Window獲得或失去焦點時被調用。此時可以設置代碼中定義的View的一些LayoutParameter。
如果View進入了銷燬階段,肯定是會被調用的。
9.onWindowVisibilityChanged
該方法同上,具體是在包含當前View的Window可見性改變時被調用。
10.onDetachedFromWindow
當View離開附着的窗口時觸發,比如在Activity調用onDestroy方法時View就會離開窗口。和一開始的AttachedToWindow相對,都只會被調用一次。
總結
Activity在setContentView 之後,會從xml讀取view並初始化,加載完成之後會調用onFinishInflate,當Activity執行到onResume的時候View纔會被添加到窗口中並執行onAttachToWindow,隨後執行onMeasure、onSizeChanged、onLayout、onDraw操作,這幾個方法會被view的刷新及Activity的生命週期所影響,導致會執行多次。最後在頁面被銷燬的時候onDetachedFromWindow被調用