雜談-View的生命週期

原文: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被調用

 

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