(四)View的控件架构

Android的控件架构
       Android中控件大致分为ViewGroup控件和View控件。在Activity中使用的findViewbyId()方法,就是在控件树中以 深度优先遍历查找对应元素。

                                                           android UI架构图
每个Activvity都包含一个Window对象,该对象通常由PhoneWindow实现, 该Window在Activity的attach方法中通过调用 PolicyManager.makeNewWindo创建; PhoneWindow将一个DecorView设置为整个应用窗口的根View。DecorView作为窗口界面的顶层视图,封装了一些窗口操作的通用方法。DecorView将要显示的具体内容呈现在了PhoneWindow,这里面的所有View的监听事件都通过WSM(WindowManagerService)来进行接受,通过Activity对象来回调相应的Listener。显示上,DecorView装载了一个竖的LinearLayout,将屏幕分为两部分TitleView和ContentView。ContentView是一个ID为content的FrameLayout,在Activity中调用的setContentView就是给ContentView设置内容的。 注意:当程序在onCreate()方法中setContentView()方法后,AMS(ActivityManagerService)会回调onResume()方法,此时系统会将整个DecorView添加到PhoneWindow中,以完成界面绘制。

ViewRoot是连接DecorView和WMS的纽带,对应于ViewRootImpl类,View的三大流程均是通过ViewRoot完成。





















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值