- onResourcesLoaded加载资源
3.1 onResourcesLoaded()方法里,其实调用了inflater.inflate()来生成View,然后addView添加到父布局下面
mLayoutInflater.inflate() - LayoutInflater.java
- LayoutInflater.inflate()就是用来加载xml的
- View inflate(XmlPullParser parser, @Nullable ViewGroup root, boolean attachToRoot)三个参数分别是 XML解析器、父布局的类型、是否要添加到父布局下面(详情看第四步)
attachToRoot 用到的地方
- 查看inflate方法,重点方法 createViewFromTag()创建View。
3.1 查看 createViewFromTag() 方法,如果有mFactory、mFactory2、mPrivateFactory就走Factory的onCreateView,不然就走系统的onCreateView
重点中的重点!!! 因为这里是这样构造view的,所以可以通过自定义的Factory或者Factory2,来使构造View的代码走我们自己的,这样就可以实现 -- 插件化换肤
还有一种方法就是直接给LayoutInflate.java这一整个类都给替换了 -- 插件化换肤