在我们的分析过程中,会对这些问题一一进行解答。从LayoutInflater.from方法中可以知道,我们找到是Context.LAYOUT_INFLATER_SERVICE对应的Service好啦,主角终于登场了――PhoneLayoutInflater,我们获取的LayoutInflater就是这个类的对象。这里主要讲两个部分,首先是rInflateChildren这个方法,其实就是一层一层的把所有节点取出来,然后通过createViewFromTag方法将其转换成View对象。所以重点是在如何转换成View对象的。这段代码主要做了两件事情 第一,根据ClassName将类加载到内存,然后获取指定的构造器constructor。LayoutInflater加载到xml文件中内容之后,通过反射将每一个标签的名字取出来,并生成对应的类名,然后通过反射获得该类的构造器函数,参数为Context和AttributeSet。

Android  LayoutInflater加载布局详解及实例代码

Android  LayoutInflater加载布局详解及实例代码

Android  LayoutInflater加载布局详解及实例代码

Android  LayoutInflater加载布局详解及实例代码

Android  LayoutInflater加载布局详解及实例代码

Android  LayoutInflater加载布局详解及实例代码

Android  LayoutInflater加载布局详解及实例代码