美文网首页Android技术知识
01 - [开胃菜] - Activity.setContent

01 - [开胃菜] - Activity.setContent

作者: __Y_Q | 来源:发表于2020-02-01 11:43 被阅读0次

01 - [开胃菜] - Activity.setContentView 涉及到的类及相关概念
02 - [正菜] - Activity.setContentView流程
03 - [甜汤] - AppCompatActivity.setContentView 流程
04 - [完结] - setContentView 流程总结

大家新年好, 病毒肆虐期间, 在家学习学习, 马上就要复工了, 提前调整调整状态.
setContentView 是我们经常用到的, 可是后面都做了什么, 大家了解吗?

千里之行始于足下, 现在我们先来了解 Activity 的 setContentView 后续流程中的涉及到的类和相关的几个概念.

1. 1 Window.java

官方注释翻译:

是一个顶层窗口外观和行为策略的抽象基类, 这个类的实例应作为顶层视图添加到窗口管理器. 它提供了标准的UI策略, 比如背景, 标题其余, 默认密钥处理等.

此抽象类的唯一实现类是 android.view.PhoneWindow.

1.2 DecorView.java

DecorView 继承 FrameLayout 官方注释翻译如下:

这是窗口的顶层视图, 包含窗口装饰.

理解:

DecorView 就是一个FrameLayout, 是最顶层的View. 它包含了Window 的装饰(背景, 标题, UI策略等), 会体现在这个View上.

看到这里可以知道了两个概念.

顶层窗口 Window (PhoneWindow)

顶层视图 View (DecorView)

它们两个关系如下: 顶级窗口包含的状态属性, 会在顶级视图体体现出来, 比如窗口大小, 背景, 标题, 等.

1.3 PhoneWindow.mContentParent 变量

mContentParent 是 PhoneWindow 中的一个 ViewGroup 类型的变量, 官网注释翻译如下

这是一个放置窗口内容的视图, 它不是 mDecor 本身, 就是一个mDecor 的子View

( mDecor 是 PhoneWindow 中的一个 DecorView 类型的变量. )

相关文章

网友评论

    本文标题:01 - [开胃菜] - Activity.setContent

    本文链接:https://www.haomeiwen.com/subject/ehgtxhtx.html