Android
讀書筆記
聲明:本筆記是本人學(xué)習(xí)過程中的記錄,摘取自徐宜生的《Android群英傳》,有興趣的可以購買此書籍學(xué)習(xí)才写。
第三章 Android控件架構(gòu)與自定義詳解
- Android中的每一個控件都會在界面占據(jù)一塊
矩形
的區(qū)域回挽,在Android中控件大概分為兩類ViewGroup控件
和View控件
。ViewGroup作為父控件可以包含多個
View控件缨历,并管理其包含的控件以蕴。通過ViewGroup
控件,整個界面形成了一個控件樹
辛孵,上層控件負(fù)責(zé)下層控件的測量
和繪制
丛肮,并傳遞交互事件
。在每棵控件樹的頂部魄缚,都有一個ViewParent 對象
宝与,即控件樹的核心焚廊,所有的交互管理事件都由他來統(tǒng)一調(diào)度和分配
。 - Android界面架構(gòu)圖:
View樹結(jié)構(gòu)圖
UI界面架構(gòu)圖
- 我們看UI界面架構(gòu)圖可以知道习劫,每個Activity都包含一個
Window對象
(在Android中通常由PhoneWindow
來實現(xiàn))咆瘟。 - PhoneWindow將一個
DecorView
設(shè)置為整個應(yīng)用窗口的根View
。 -
DecorView
作為窗口的頂層視圖诽里,封裝了一些窗口操作的通用方法袒餐。DecorView
將要顯示具體內(nèi)容
都呈現(xiàn)在PhoneWindow
上,這里所有的View的監(jiān)聽事件
都通過WindowManagerService
來進(jìn)行接收谤狡,并通過Activity對象
來回調(diào)
相應(yīng)的OnClickListener
灸眼。在顯示上,它將屏幕分為兩部分豌汇,一個是TitleView
幢炸,一個是ContentView
【它是一個ID為content的Framelayout,activity_main.xml就是設(shè)置在Framelayout里的】拒贱。 - 標(biāo)準(zhǔn)視圖樹
標(biāo)準(zhǔn)視圖樹
- 在代碼中宛徊,當(dāng)程序在
onCreate()
方法中調(diào)用setContentView()
方法后,ActivityManagerService
會回調(diào)OnResume()
方法逻澳,此時系統(tǒng)會把整個DecorView
添加到PhoneWindow
中闸天,并讓其顯示出來