Android窗口機制(一)初識Android的窗口結構

Android窗口機制系列

Android窗口機制(一)初識Android的窗口結構
Android窗口機制(二)Window,PhoneWindow,DecorView,setContentView源碼理解
Android窗口機制(三)Window和WindowManager的建立與Activity
Android窗口機制(四)ViewRootImpl與View和WindowManager
Android窗口機制(五)最終章:WindowManager.LayoutParams和Token以及其餘窗口Dialog,Toastspa

窗口結構

Paste_Image.pngxml

說明

  • 每個Activity都包含一個Window對象,Window對象一般由PhoneWindow實現
  • PhoneWindow:將Decoriew設置爲整個應用窗口的根View。是Window的實現類。它是Android中的最基本的窗口系統,每一個Activity 均會建立一個PhoneWindow對象,是Activity和整個View系統交互的接口。
  • DecorView:頂層視圖,將要顯示的具體內容呈如今PhoneWindow上. DecorView是當前Activity全部View的祖先,它並不會向用戶呈現任何東西,它主要有以下幾個功能,可能不全:
    • A. Dispatch ViewRoot分發來的key、touch、trackball等外部事件;
    • B. DecorView有一個直接的子View,咱們稱之爲System Layout,這個View是從系統的Layout.xml中解析出的,它包含當前UI的風格,如是否帶title、是否帶process bar等。能夠稱這些屬性爲Window decorations。
    • C. 做爲PhoneWindow與ViewRoot之間的橋樑,ViewRoot經過DecorView設置窗口屬性。//能夠這樣獲取 View view = getWindow().getDecorView();
    • DecorView只有一個子元素爲LinearLayout。表明整個Window界面,包含通知欄,標題欄,內容顯示欄三塊區域。DecorView裏面TitleView:標題,能夠設置requestWindowFeature(Window.FEATURE_NO_TITLE)取消掉ContentView:是一個id爲content的FrameLayout。咱們日常在Activity使用的setContentView就是設置在這裏,也就是在FrameLayout上

下篇文章將跟你們講解他們的是如何聯繫的,以及他們的理解。
Android窗口機制(二)Window,PhoneWindow,DecorView,setContentView源碼理解:http://www.jianshu.com/p/e42b638944ae對象



做者:Hohohong
連接:https://www.jianshu.com/p/40a9c93b5a8d
來源:簡書
簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。接口

相關文章
相關標籤/搜索