美文网首页
查看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