LayoutInflate:
1,是什么?LayoutInflate就是传说中的布局泵,是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。
2,实例化:
所以必须在activity的上下文环境下才能使用布局泵,不是想在哪里用就可以用的·;
3,加载布局;
Inflate(resId , null )不能正确处理宽和高是因为:layout_width,layout_height是相对了父级设置的,必须与父级的LayoutParams一致。而加载的view的getLayoutParams为null,不正常显示,源码分析主要是没有设置setLayoutParams(params);
Inflate(resId , parent,false)加载的view 可以正确处理,因为加载的view设置了setLayoutParams(params);这个params正是父类布局generateLayoutParams(attrs);得到的,正常显示,原来参数设成什么就是什么
Inflate(resId , parent,true )不仅能够正确的处理,而且已经把resId这个view加入到了parent,并且返回的是parent,和以上两者返回值有绝对的区别;
总结一句:加载布局用:Inflate(resId , parent,false);
具体参考偶像;鸿神的博客:http://blog.csdn.net/lmj623565791/article/details/38171465;