您的位置:首页 > 其它

经验总结-谈谈我对LayoutInflater中inflate方法的认识

2017-11-25 14:26 197 查看
我为什么要写这篇博文呢,就是自己太以为是了,总认为LayoutInflater这个类没什么,只是个用来插入布局的类而已,但是我每次用到这个类的时候,当调用inflate方法插入布局时,总是对它那几个重载方法的参数不了解,很难下手,所以自己决定把这个方法弄清楚,那现在开始我的博文吧。

inflate的几个重载方法介绍

inflate根据我的查找目前有四个重载方法,其中两个是只有两个参数的,另外两个是三个参数的。两个参数的方法中有一个方法第一个参数是int类型的,有一个是xmlparser对象。三个参数的方法中也是有一个方法第一个参数是int类型的,有一个是xmlparser对象。本篇博文只局限于我们常用的第一个参数问int类型的方法。

一、.inflate(int resource,ViewGroup root)解读

该重载方法一般接收两个参数,第一个参数就是要加载的布局id,第二个参数是指给该布局的外部再嵌套一层父布局,如果不需要就直接传null。

二、.inflate(int resource,ViewGroup root,boolean attachToRoot)解读

此段介绍我只是稍微看了一下源码,主要的还是参考了别人的博客来写的。如果大家有时间有精力,那就自己去看一下源码啦。介绍三个参数的作用:

1.如果root为null,attachToRoot将失去作用,设置任何值都没有意义。

2.如果root不为null,attachToRoot设为true,则会给加载的布局文件的指定一个父布局,即root。

3.如果root不为null,attachToRoot设为false,则会将布局文件外层的父layout属性进行设置,当该view被添加到父view当中时,这些layout属性会自动生效。

注:这个解释非常值得我们去掌握理解,大家如果有时间可以自己去写布局文件进行测试

4.在不设置attachToRoot参数的情况下,如果root不为null,attachToRoot参数默认为true。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: