1. 程式人生 > >android開發—Fragment中onCreateView()和onActivityCreated()的區別

android開發—Fragment中onCreateView()和onActivityCreated()的區別

在編寫Fragment時,在onCreateView()方法中啟動了一個初始化自定義View的方法 initView(),但是除錯時就崩潰,列印日誌發現是這裡出了問題,就將這個方法放到了onActivityCreated()方法中啟動,就沒有再崩潰過,不明白為什麼,查詢API和資料後總結如下:
書上的講解是:
onCreateView():每次建立、繪製該Fragment的View元件時回撥該方法,Fragment將會顯示該方法返回的View元件。
onActivityCreated():當Fragment所在的Activity被啟動完成後回撥該方法。

API:
這裡寫圖片描述

這裡寫圖片描述

而上文出現的問題是這樣的


①靜態的view不需要onActivityCreated
②儲存view的狀態的時候需要用onActivityCreated
③訪問父activity的view層的時候需要在onActivityCreated 方法裡面做
即如果view是靜態的,那麼沒有必要在onActivityCreated 方法去呼叫,大多數的自定義的view,初始化時都需要一個context,而activity是context的子類,所以在onCreateView方法的時候非靜態的view初始化呼叫可能出現異常,所以對於非靜態的view,最好在onActivityCreated方法呼叫
參考了以下兩篇部落格:
http://blog.csdn.net/u014449046/article/details/48572905

http://blog.csdn.net/lxl403853563/article/details/49800231