问题引入
- 代码写久了发现有些问题,到底那些view时怎么显示在屏幕上的,怎么显示在window上的,还有我们刚开始学习android时候,每次新建一个Activity,在onCreate方法中都会使用setContentView这个方法传递一个布局,它又是怎么显示到屏幕上的呢?
首先Actiivity就是创建了一个Window,Activity实际就是Context的一个子类,Context是一个抽象类。。(Activity在创建的时候就创建了一个Window,同时也创建一个decorview)
- DecorView是什么?
DecorView是Activity中的顶级View,内部包含标题栏和内部栏
在第二部分在事件传递初始时候,单击事件从Activity传递到Window再到传递给DecorView,再由DecorView传递给我们的View,我们来学习一下它们三者之间的关系。
- 按钮是怎么显示在Activity上的内,是怎么绘制在手机屏幕的呢?
答案:通过Window这个类,在Activity创建的时候会创建一个Window,Window通过viewroot将decorview和view添加在window上。
我么在创建Activity的时候,系统会自动帮我们创建一个decorview,decorview是依赖viewroot将自己添加到window上。
Window的基本介绍
Android所有的视图都是通过Window来呈现的,不管是Activity&#x