Android窗口机制(一)初识Android的窗口结构

本文章转载自简书作者“Hohohong”系列窗口机制系列文章。

Android窗口机制(一)初识Android的窗口结构
Android窗口机制(二)Window,PhoneWindow,DecorView,setContentView源码理解
Android窗口机制(三)Window和WindowManager的创建与Activity
Android窗口机制(四)ViewRootImpl与View和WindowManager
Android窗口机制(五)最终章:WindowManager.LayoutParams和Token以及其他窗口Dialog,Toast

窗口结构

Paste_Image.png

说明

  • 每一个Activity都包含一个Window对象,Window对象通常由PhoneWindow实现
  • PhoneWindow:将Decoriew设置为整个应用窗口的根View。是Window的实现类。它是Android中的最基本的窗口系统,每个Activity 均会创建一个PhoneWindow对象,是Activity和整个View系统交互的接口。
  • DecorView:顶层视图,将要显示的具体内容呈现在PhoneWindow上. DecorView是当前Activity所有View的祖先,它并不会向用户呈现任何东西,它主要有如下几个功能,可能不全:
    • A. Dispatch ViewRoot分发来的key、touch、trackball等外部事件;
    • B. DecorView有一个直接的子View,我们称之为System Layout,这个View是从系统的Layout.xml中解析出的,它包含当前UI的风格,如是否带title、是否带process bar等。可以称这些属性为Window decorations。
    • C. 作为PhoneWindow与ViewRoot之间的桥梁,ViewRoot通过DecorView设置窗口属性。//可以这样获取 View view = getWindow().getDecorView();
    • DecorView只有一个子元素为LinearLayout。代表整个Window界面,包含通知栏,标题栏,内容显示栏三块区域。DecorView里面TitleView:标题,可以设置requestWindowFeature(Window.FEATURE_NO_TITLE)取消掉ContentView:是一个id为content的FrameLayout。我们平常在Activity使用的setContentView就是设置在这里,也就是在FrameLayout上

下篇文章将跟大家讲解他们的是如何联系的,以及他们的理解。
Android窗口机制(二)Window,PhoneWindow,DecorView,setContentView源码理解:http://www.jianshu.com/p/e42b638944ae

更多相关文章

  1. Android(安卓)如何将一个Activity设置成窗口样式
  2. android软键盘设置
  3. android:windowSoftInputMode属性使用
  4. android windowSoftInputMode
  5. Android(安卓)的运行机制
  6. Android(安卓)SDK 国内镜像
  7. Layout属性介绍
  8. Appium-Drivers-Espresso(Android)
  9. Android消息机制(五) Service IntentService

随机推荐

  1. ijkplayer入门之目录介绍及编译
  2. 解决Android横竖屏切换数据丢失问题
  3. Android(安卓)Studio程序无法加载到虚拟
  4. 【原创】Android之修改AlertDialog对话框
  5. Android 读取raw下的txt文件
  6. Android 四大组件Broadcast
  7. Android Robotium搭建环境测试微信
  8. 【Android】点击应用进而打开base.apk的
  9. Android 遇坑【2】 - ScrollView 嵌套 Li
  10. Android 关闭虚拟按钮、底部导航条