Android View的加載流程
阿新 • • 發佈:2018-09-07
n) ams 不同 流程 頂級 nbsp 圖案 放置 包含
什麽是Activity?
Activity是 用戶操作的可視化界面;它為用戶提供了一個放置視圖和交互操作的窗口。采用setContentView的方法提供。因此,可以理解Activity、Window、View三者關系為。Activity提供Window ,View被添加到Window中。
以刷墻舉例:
Activity可以理解為房間,Window就是房間內的墻面, 我們在墻面上可以刷各種不同的圖案,這些圖案就是View。
Activity View的加載流程
1、Activity在被創建之初,調用了attach方法,這個時候,為Activity創建了一個PhoneWindow, 並且為PhoneWindow設置了事件交互的回掉。
2、緊接著Activity的onCreate()方法被回掉。這裏也就到了我們經常復寫方法,我們在OnCreate()之中,調用setContentView(id)。
3、在setContentView(), PhoneWindow 創建了一個頂級視圖 DecorView (FrameLayout)的子類。
4、緊接著,DecorView會依據一些feature(類似NO_ACTICON_BAR)來,添加一個layout。這個Layout中包含了Title、content。其中content也是FrameLayout,也就是我們在setContentView(id),將視圖添加的父容器。
所以我們必須要在setContentView之前設置實現全屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
實現無標題欄(但有系統自帶的任務欄):
requestWindowFeature(Window.FEATURE_NO_TITLE);
Android View的加載流程