inflate()及其重载有如下几个:
- View inflate(@LayoutRes int resource, @Nullable ViewGroup root)
- View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot)
- View inflate(XmlPullParser parser, @Nullable ViewGroup root)
- View inflate(XmlPullParser parser, @Nullable ViewGroup root, boolean attachToRoot)
对于方法2中三个参数:
resource:布局文件id
root:ViewGruop类型的view,跟参数三attachToRoot联动使用
- 当root为nul时,attachToRoot参数值true或false没有区别,返回view为xml布局文件中根view(即源码中temp变量),其LayoutParams为null。
该情况仅返回xml对应的view对象,没有设置LayoutParams,不做其它处理。
- 当root不为null,attachToRoot为true时,表示xml文件以root为父控件,该view对应的宽高为xml文件中定义的宽高,其LayoutParams不为null。
该情况以root为结果返回的同时,通过 root.addView(temp, params)将xml添加到了root中,并指定了params参数。
- 当root不为null,attachToRoot为false时&