您的位置:首页 > 其它

LayoutInflater的作用

2012-07-22 18:36 211 查看
Inflater英文意思是膨胀,在安卓中是“扩展”的意思。
LayoutInflater的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化!而 findViewById()是找具体某一个xml下的具体 widget控件(如:Button,TextView等)。

她可以有很多地方可以使用,如BaseAdapter的getView中,自定义Dialog中取得view中的组件widget等等。
它的用法有2种:

Java代码

view plaincopy to clipboardprint?

LayoutInflater inflater = LayoutInflater.from(this);

View view=inflater.inflate(R.layout.ID, null);

或者干脆并成一句:

View view=LayoutInflater.from(this).inflate(R.layout.ID, null);

另一种方法:

Java代码

view plaincopy to clipboardprint?

LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);

View view=inflater.inflate(R.layout.ID, null);

上面2种方法本质上是一样的,看下面的源码,form()调用的就是getSystemService():

Java代码

Java代码

public static LayoutInflater from(Context context) {

LayoutInflater LayoutInflater =

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

if (LayoutInflater == null) {

throw new AssertionError("LayoutInflater not found.");

}

return LayoutInflater;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: