view 详解 (一) 将view加载到窗口过程分析
2014-07-18 17:56
218 查看
1.window类
为一个抽象类,提供绘制窗口的一组通用api,可以将之理解为一个载体,各种view在这个载体上显示
2.phoneWindow
2.1该类继承于window类,是window类的具体实现,我们可以通过该类具体去绘制窗口。
2.2 该类包含了一个DecorView对象,DecorView是所有应用窗口的根view
2.3 简而言之,phonewindow类是吧一个FrameLayout类即DecorView对象进行包装。在phoneWindow
部分源码
3.DecorView类
3.1 该类是phoneWindow类的内部类,是FrameLayout的子类,是一个装饰的view,比如说title,titleBar,最主要的一点是,它是所有应用窗口的根view
3.2 decorview只有一个子元素为LinearLayout,代表整个应用界面,包含通知栏,标题栏,内容显示栏三块区域
3.3 LinearLayout里面有两个FrameLayout子元素 20,为标题栏显示界面,21为内容显示界面,就是setcontentView()方法载入的布局界面。
4.Activit调用setContentView(intresId)过程
4.1 从上图可以看出,Activity.setContentView(int layoutResId) 是在PhoneWindow(Window的实现类)中完成。
4.2 在phoneWindow的setcontentView(int resId)中,如果setContentView是第一次加载,则会调用installDecor(),此方法是创建DecorView,即根视图,如果不是第一次调用setcontentView,则removeAllViews内容中的所有视图,
这就解释了设置titleBar,是否有标题,是否全屏,都要在setContentView之前执行,因为第一次setContentView,DecorView就已经建立
为一个抽象类,提供绘制窗口的一组通用api,可以将之理解为一个载体,各种view在这个载体上显示
2.phoneWindow
2.1该类继承于window类,是window类的具体实现,我们可以通过该类具体去绘制窗口。
2.2 该类包含了一个DecorView对象,DecorView是所有应用窗口的根view
2.3 简而言之,phonewindow类是吧一个FrameLayout类即DecorView对象进行包装。在phoneWindow
部分源码
3.DecorView类
3.1 该类是phoneWindow类的内部类,是FrameLayout的子类,是一个装饰的view,比如说title,titleBar,最主要的一点是,它是所有应用窗口的根view
3.2 decorview只有一个子元素为LinearLayout,代表整个应用界面,包含通知栏,标题栏,内容显示栏三块区域
3.3 LinearLayout里面有两个FrameLayout子元素 20,为标题栏显示界面,21为内容显示界面,就是setcontentView()方法载入的布局界面。
4.Activit调用setContentView(intresId)过程
4.1 从上图可以看出,Activity.setContentView(int layoutResId) 是在PhoneWindow(Window的实现类)中完成。
4.2 在phoneWindow的setcontentView(int resId)中,如果setContentView是第一次加载,则会调用installDecor(),此方法是创建DecorView,即根视图,如果不是第一次调用setcontentView,则removeAllViews内容中的所有视图,
这就解释了设置titleBar,是否有标题,是否全屏,都要在setContentView之前执行,因为第一次setContentView,DecorView就已经建立
相关文章推荐
- Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- Android应用程序窗口(Activity)的视图对象(View)的创建过程分析
- IOS基本界面元素window(窗口)\视图(view)介绍及生命周期和加载过程等
- LinearLayout详解三:LayoutInflater创建View过程分析
- Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- 【转载】Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- Android应用程序窗口(Activity)的视图对象(View)的创建过程分析
- Android 4.4.2 SELinux 与系统关系详解二: mac_permissions.xml 加载及seinfo 提取过程分析
- Android应用程序窗口(Activity)的视图对象(View)的创建过程分析
- Android中将布局文件/View添加至窗口过程分析
- Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- Android应用程序窗口(Activity)的视图对象(View)的创建过程分析
- Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- View添加至窗口过程分析
- Android视图加载到窗口的过程分析
- Android应用程序窗口(Activity)的视图对象(View)的创建过程分析