1. 程式人生 > >Android View的加載流程

Android View的加載流程

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的加載流程