美文网首页
查看setContentView代码

查看setContentView代码

作者: pianoboyfans | 来源:发表于2018-01-24 18:24 被阅读0次

    我们现在写activity的时候有时候是继承Activity的,不过大多数的时候都是默认继承AppCompatActivity的,在onCreate中自动给我们生成设置布局代码,即setContentView,那么我们查看一下setContentView具体的实现,以便加深我们对UI界面架构的了解

    1、继承Activity

    我们点击去看到

    getWindow()返回的是mWindow,通过在这个文件中查找发现mWindow=new PhoneWindow(this, window, activityConfigCallback);其实PhoneWindow就是Window抽象类的一个子类。

    查看方法:在我们的SDK中搜索,如我的SDK在e盘,那么我这样搜

    将搜到的文件拖到studio中就看到了如下的图片

    所以说每个Activity都包含一个Window对象,在Android中Window对象通常由PhoneWindow来实现。这就是为什么我们看到很多博客或者书籍中都有这样的图了

    摘自Android群英传中33页

    2、继承AppCompatActivity

    点进去是这样的

    再点击setContentVIew进去是这样的

    其实和第一种的Window差不多

    那么mDelegate是什么呢?我们继续看看

    原来是根据我们的版本判断然后创建不同的对象。AppCompatDelegateImplN继承AppCompatDelegateImplV23,AppCompatDelegateImplV23继承AppCompatDelegateImplV14...AppCompatDelegateImplV9-->AppCompatDelegateImplBase-->AppCompatDelegate

    总结

    感觉两种都差不多

    相关文章

      网友评论

          本文标题:查看setContentView代码

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