美文网首页
setContentView

setContentView

作者: couriravant | 来源:发表于2020-01-01 18:09 被阅读0次

会调用phoneWindow的setContentView方法如下:

 public void setContentView(int layoutResID) {
        
        if (mContentParent == null) {
            installDecor();
        } 
     ...
       mLayoutInflater.inflate(layoutResID, mContentParent);
       ....
    }

首先如果没有decorview会先创建DecorView, 然后通过LayoutInflater加载xml布局,将布局view add到 decorView上, 最后在Activity onResume的时候,会通过WindowManager添加decorView到window,并设置为VISIABLE。
我们知道Activity中的PhoneWindow对象帮我们创建了一个PhoneWindow内部类DecorView(父类为FrameLayout)窗口顶层视图,

然后通过LayoutInflater将xml内容布局解析成View树形结构添加到DecorView顶层视图中id为content的FrameLayout父容器上面。到此,我们已经知道Activity的content内容布局最终

会添加到DecorView窗口顶层视图上面

相关文章

网友评论

      本文标题:setContentView

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