首先在Activity的onCreate()方法里面setContentView,点进去
再点到getWindow()的setContentView();也就是抽象类Window的的setContentView(),然后看到Window顶部的提示:PhoneWindow是Window的唯一实现类
可以找到PhoneWindow的setContentView()方法,找到installDecor这个方法,点进去
这个方法就是承载我们布局View的布局的创建方法,点进去,其他的不看,直接找到后面根据页面配置选择布局文件的代码 这里面有很多布局,根据你页面的配置会加载其中的某一个,然后我们选R.layout.screen_simple这个布局看一下 可以看到这里面是一个线性布局,然后有一个资源id为content的布局,然后我们再回到PhoneWindow的generateLayout方法,接着往下看 这里把刚刚选择的布局加载到DecorVIew中 找到R.layout.screen_simple中的id为com.android.internal.R.id.content的FrameLayout,然后作为generateLayout的返回值返回,并赋值给mContentParent,然后回到PhoneWindow的setContentView()方法,结束!
网友评论