在編寫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方法調用
參考了以下兩篇部落格:
<a href="http://blog.csdn.net/lxl403853563/article/details/49800231">http://blog.csdn.net/lxl403853563/article/details/49800231</a>
本文轉自 一點點征服 部落格園部落格,原文連結:http://www.cnblogs.com/ldq2016/p/5591988.html,如需轉載請自行聯系原作者