Android 视图架构学习笔记
来源:互联网 发布:手机怎么破解网络限制 编辑:程序博客网 时间:2024/06/06 20:26
Android 视图架构学习笔记
Activity的Touch事件事实上是调用它内部的Window的ViewGroup的Touch事件,可以直接当成ViewGroup处理。(这就是为什么在activity中有onTouchEvent())
Activity和Window
Activity并不负责视图控制,它只是控制生命周期和处理事件,真正控制视图的是Window。一个Activity包含了一个Window,Window才是真正代表一个窗口,也就是说Activity可以没有Window,那就相当于是Service了。在ActivityThread中也有控制Service的相关函数或许正好印证了这一点。
Activity的setContentView实际上是调用了Window的setContentView方法。
Window通过installDecor来新建DecorView。
Window,Activity和DecorView
DecorView是FrameLayout的子类,它可以被认为是Android视图树的根节点视图。DecorView作为顶级View,一般情况下它内部包含一个竖直方向的LinearLayout,在这个LinearLayout里面有上下两个部分(具体情况和Android版本及主体有关),上面的是标题栏,下面的是内容栏。在Activity中通过setContentView所设置的布局文件其实就是被加到内容栏之中的,而内容栏的id是content,在代码中可以通过ViewGroup content = (ViewGroup)findViewById(R.android.id.content)来得到content对应的layout。
Window中有几个视图相关的比较重要的成员变量如下所示:
mDecor:DecorView的实例,标示Window内部的顶级视图
mContentParent:setContetView所设置的布局文件就加到这个视图中
mContentRoot:是DecorView的唯一子视图,内部包含mContentParent,标题栏和状态栏。
Window,DecorView 和 ViewRoot
ViewRoot对应ViewRootImpl类,它是连接WindowManagerService和DecorView的纽带,View的三大流程(测量(measure),布局(layout),绘制(draw))均通过ViewRoot来完成。ViewRoot并不属于View树的一份子。从源码实现上来看,它既非View的子类,也非View的父类,但是,它实现了ViewParent接口,这让它可以作为View的名义上的父视图。RootView继承了Handler类,可以接收事件并分发,Android的所有触屏事件、按键事件、界面刷新等事件都是通过ViewRoot进行分发的。ViewRoot可以被理解为“View树的管理者”——它有一个mView成员变量,它指向的对象和上文中Window和Activity的mDecor指向的对象是同一个对象。
0 0
- Android 视图架构学习笔记
- android学习笔记 视图动画
- 《软件架构设计》学习笔记--3--软件架构视图
- 学习笔记:Android系统架构
- android 显示架构学习笔记
- Android GPS 架构学习笔记
- Android 架构概况,学习笔记。
- Android系统架构学习笔记
- Android MVP架构学习笔记
- Android Span架构学习笔记
- Android视图架构详解
- Android 视图架构详解
- Android学习笔记24:网格视图
- android学习笔记28:滚动视图
- Android学习笔记:ScrollView卷轴视图
- Android学习笔记(2)--滚动视图
- Android开发学习笔记:浅谈DDMS视图
- Android学习笔记——视图容器
- Jstl标签库
- Ubuntu安装NVIDIA官方驱动无法进入桌面,使用PPA重新安装
- android两对概念辨析:ouchEvent vs. GestureDetector & Srcoller vs. ScrollView
- node.js 包的概念
- HTML DOM基本概念及Element.getAttribute("value") 与Attribute.value差异
- Android 视图架构学习笔记
- 大神之路:重学Android——Android多媒体MediaPlayer
- 51Nod-1335-子序列翻转
- Retrofit 2.0 单文件、多文件上传
- 深入探讨Iterator模式
- 事件分发学习笔记
- actionbaractivity 与 appcompatactivity
- TJI读书笔记10-复用类
- w3cschool之JavaScript学习