EverTriely

导航

6、Android之LayoutInflater.inflate()

LayoutInflater.inflate()的作用就是将一个xml定义的布局文件实例化为view控件对象;

 

与findViewById区别:

 LayoutInflater.inflate是加载一个布局文件;

 findViewById则是从布局文件中查找一个控件;

 

一.获取LayoutInflater对象有三种方法

LayoutInflater inflater=LayoutInflater.from(context);

LayoutInflater inflater=getLayoutInflater();在Activity中可以使用,实际上是View子类下window的一个函数

LayoutInflater inflater=(LayoutInflater)context.getSystemService(LAYOUT_INFLATER_SERVICE);

 

二:inflate 参数

public View inflate(int resource, ViewGroup root, boolean attachToRoot) :

reSource:View的layout的ID root:需要附加到resource资源文件的根控件,inflate()会返回一个View对象,如果第三个参数

attachToRoot为true,就将这个root作为根对象返回,否则仅仅将这个root对象的LayoutParams属性附加到resource对象的根布局对象

上,也就是布局文件resource的最外层的View上。如果root为null则会忽略view根对象的LayoutParams属性(注意)。

attachToRoot:是否将root附加到布局文件的根视图上

简单来讲:

 

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

 

2. 如果root不为null,attachToRoot设为true,则会在加载的布局文件的最外层再嵌套一层root布局。

 

3. 如果root不为null,attachToRoot设为false,则root参数失去作用。

 

4. 在不设置attachToRoot参数的情况下,如果root不为null,attachToRoot参数默认为true。

 

posted on 2015-08-04 03:24  EverTriely  阅读(151)  评论(0编辑  收藏  举报