背景
一般我们创建Activity的时候,先是在布局XML中添加好想要的内容。之后,在Activity的java文件中,添加如下代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
这样,就完成了将XML布局内容,添加到App中去了。
那么问题来了,Android是怎么实现将XML转换成Activity界面的呢?
分析过程简述:
- 调用
setContentView
方法,加载XML内容。在setContentView
方法里面,调用inflate
方法,加载XML中的视图内容。如果遇到GroupView对象,递归加载GroupView中视图的内容。最后,形成View树。 View树创建之后,调用rootView的
performTraversals
方法。此方法内部调用measure()