从上面的代码大家应该不难发现,inflate 主要是解析xml的属性,并生成xml的根布局temp,并且基于inflate的参数情况,来确定是否将temp添加到 解析它的 外层布局上面,也就是root变量上面。 inflate 的三个参数,其中第二和第三参数分下面几种情况: 当root != null 且 attachToRoot == false 时,新解析的 View 会直接...
对于Inflate的三个参数(int resource, ViewGroup root, boolean attachToRoot) 如果inflate(layoutId, null )则layoutId的最外层的控件的宽高是没有效果的 如果inflate(layoutId, root, false ) 则认为和上面效果是一样的 如果inflate(layoutId, root, true ) 则认为这样的话layoutId的最外层控件的宽高才能正常...
到这里就把创建视图的流程分析完了,接下来是比较 View.inflate()和 LayoutInflater.from(context).inflate()的区别。 3、View.inflate()和 LayoutInflater.from(context).inflate()的区别 1)View.inflate()第三个参数的解析: 开发中常常会对第三个参数(ViewGroup root)传入null吧,通过上面对最终inflate方法的分析,...
View.inflate(context, layoutId, viewGroup);若viewGroup !=null 实际上是调用:LayoutInflater.from(con...
public View inflate(int Resourece,ViewGroup root) 作用:填充一个新的视图层次结构从指定的XML资源文件中 reSource:View的layout的ID root: 生成的层次结构的根视图 return 填充的层次结构的根视图。如果参数root提供了,那么root就是根视图;否则填充的XML文件的根就是根视图。
2.1 View.inflate 我们通常会将 layout 布局文件加载成View , 会这样来写 /** *将 Layout 文件 加载 View * 参数一 上下文对象 * 参数二 布局文件 ID * 参数三 不为null 时自动将这个布局文件 加载到这个 root 中去 null 代表不添加 */View inflate = View.inflate(mContext, R.layout.activity_list1_...
root:需要附加到resource资源文件的根控件,什么意思呢,就是inflate()会返回一个View对象,如果第三个参数attachToRoot为true,就将这个root作为根对象返回,否则仅仅将这个root对象的LayoutParams属性附加到resource对象的根布局对象上,也就是布局文件resource的最外层的View上,比如是一个LinearLayout或者其它的Layout对象。
百度试题 题目中国大学MOOC: 下列代码中,inflate方法的第一个参数的含义是()mInflater=LayoutInflater.from(context); View view=mInflater.inflate(R.layout.list_view_item,null); 相关知识点: 试题来源: 解析 列表项布局文件的id 反馈 收藏
进一步思考,我们发现,调用inflate时,除了输入布局文件的id外,一般要求传入parent ViewGroup,传入这个参数的目的,就是为了读取布局文件中的layout配置信息,如果没有传入,这些信息将会丢失,感兴趣的同学可以自己试验验证下,这里就不展开了。 不同的ViewGroup拥有不同的LayoutParams内部类,这是因为,它们所允许的子View微微...