前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android自定义View基础:ViewRoot、DecorView & Window的简介

Android自定义View基础:ViewRoot、DecorView & Window的简介

作者头像
Carson.Ho
发布2019-06-14 20:44:49
6580
发布2019-06-14 20:44:49
举报
文章被收录于专栏:Android知识分享Android知识分享

前言

  • 自定义View原理是Android开发者必须了解的基础,在了解自定义View之前,你需要有一定的知识储备。
  • 今天,本文将全面解析关于自定义View中基础:ViewRoot、DecorView & Window,希望你们会喜欢。

目录

在这里插入图片描述
在这里插入图片描述

1. ViewRoot

1.1 简介

在这里插入图片描述
在这里插入图片描述

1.2 特别注意

代码语言:javascript
复制
// 在主线程中,Activity对象被创建后:
// 1. 自动将DecorView添加到Window中 & 创建ViewRootImpll对象
root = new ViewRootImpl(view.getContent(),display);

// 3. 将ViewRootImpll对象与DecorView建立关联
root.setView(view,wparams,panelParentView)

2. DecorView

2.1 定义

顶层View,即 Android 视图树的根节点;同时也是 FrameLayout 的子类

2.2 作用

显示 & 加载布局。View层的事件都先经过DecorView,再传递到View

2.3 特别说明

内含1个竖直方向的LinearLayout,分为2部分:

  1. 上 = 标题栏(titlebar)
  2. 下 = 内容栏(content)
在这里插入图片描述
在这里插入图片描述

Activity中通过 setContentView()所设置的布局文件其实是被加到内容栏之中的,成为其唯一子View = id为content的FrameLayout

代码语言:javascript
复制
// 在代码中可通过content得到对应加载的布局

// 1. 得到content
ViewGroup content = (ViewGroup)findViewById(android.R.id.content);
// 2. 得到设置的View
ViewGroup rootView = (ViewGroup) content.getChildAt(0);

3. Window

在这里插入图片描述
在这里插入图片描述

4. Activity

在这里插入图片描述
在这里插入图片描述

5. 之间关系

ViewRoot、DecorView、Window和Activity的关系非常重要。

5.1 总结

在这里插入图片描述
在这里插入图片描述

5.2 之间的关系

在这里插入图片描述
在这里插入图片描述

6. 总结

  • 本文全面解析关于自定义View中基础:ViewRoot、DecorView & Window
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年06月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 目录
  • 1. ViewRoot
    • 1.1 简介
      • 1.2 特别注意
      • 2. DecorView
        • 2.1 定义
          • 2.2 作用
            • 2.3 特别说明
            • 3. Window
            • 4. Activity
            • 5. 之间关系
              • 5.1 总结
                • 5.2 之间的关系
                • 6. 总结
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档