LayoutInflater学习笔记

来源:互联网 发布:java 日志收集框架 编辑:程序博客网 时间:2024/06/16 19:51

LayoutInflater

它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(ButtonTextView)

 

具体作用:

1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;

2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素。

 

LayoutInflater 是一个抽象类,在文档中如下声明:

public abstract class LayoutInflater extends Object

获得 LayoutInflater 实例的三种方式

1. LayoutInflater inflater = getLayoutInflater();//调用ActivitygetLayoutInflater() 

2. LayoutInflater inflater = LayoutInflater.from(context);  

3. LayoutInflater inflater =  (LayoutInflater)context.getSystemService

                              (Context.LAYOUT_INFLATER_SERVICE);

 

getLayoutInflater()->

LayoutInflater.from(context)->//第一行代码里面采用这种方式

(LayoutInflater)context.getSystemService (Context.LAYOUT_INFLATER_SERVICE);

上面为获取LayoutInflater方法

*******************************************************************************

inflate 方法

通过 sdk api 文档,可以知道该方法有以下几种过载形式,返回值均是View 对象

public View inflate (int resource, ViewGroup root) //最常用的一种方式

 

LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);       

View view = inflater.inflate(R.layout.custom, (ViewGroup)findViewById(R.id.test));  

 

对于上面代码,指定了第二个参数 ViewGroup root,当然你也可以设置为null 值。

注意:

·inflate 方法与findViewById 方法不同;

·inflater 是用来找res/layout 下的xml 布局文件,并且实例化;

·findViewById() 是找具体xml 布局文件中的具体widget 控件(:ButtonTextView)

0 0
原创粉丝点击