Android
读书笔记
声明:本笔记是本人学习过程中的记录,摘取自徐宜生的《Android群英传》,有兴趣的可以购买此书籍学习。
第三章 Android控件架构与自定义详解
- Android中的每一个控件都会在界面占据一块
矩形
的区域,在Android中控件大概分为两类ViewGroup控件
和View控件
。ViewGroup作为父控件可以包含多个
View控件,并管理其包含的控件。通过ViewGroup
控件,整个界面形成了一个控件树
,上层控件负责下层控件的测量
和绘制
,并传递交互事件
。在每棵控件树的顶部,都有一个ViewParent 对象
,即控件树的核心,所有的交互管理事件都由他来统一调度和分配
。 - Android界面架构图:
- 我们看UI界面架构图可以知道,每个Activity都包含一个
Window对象
(在Android中通常由PhoneWindow
来实现)。 - PhoneWindow将一个
DecorView
设置为整个应用窗口的根View
。 -
DecorView
作为窗口的顶层视图,封装了一些窗口操作的通用方法。DecorView
将要显示具体内容
都呈现在PhoneWindow
上,这里所有的View的监听事件
都通过WindowManagerService
来进行接收,并通过Activity对象
来回调
相应的OnClickListener
。在显示上,它将屏幕分为两部分,一个是TitleView
,一个是ContentView
【它是一个ID为content的Framelayout,activity_main.xml就是设置在Framelayout里的】。 - 标准视图树
- 在代码中,当程序在
onCreate()
方法中调用setContentView()
方法后,ActivityManagerService
会回调OnResume()
方法,此时系统会把整个DecorView
添加到PhoneWindow
中,并让其显示出来