具体作用:
1、对于一个没有被载入或者想要动态载入的界面,都需要使用layoutinflater.inflate()来载入;
2、对于一个已经载入的界面,就可以使用activiyt.findviewbyid()开发方法 来获得其中的界面元素。
layoutinflater作用是将layout的xml布局文件实例化为view类对象。
获取layoutinflater的开发方法 有如下三种:
view layout = inflater.inflate(r.layout.main, null );
layoutinflater inflater = layoutinflater.from(context); (该开发方法 实质就是第一种开发方法 ,可参考源代码)
view layout = inflater.inflate(r.layout.main, null );
layoutinflater inflater = getlayoutinflater();(在activity中可以使用,实际上是view子类下window的一个函数)
注意:
·inflate开发方法 与 findviewbyid 开发方法 不同;
·inflater 是用来找 res/layout下的 xml 布局文件,并且实例化;
private textview tv;
public void oncreate(bundle savedinstancestate){
view view = inflate.inflate(r.layout.main,null);
setcontentview(view);
}
}
上述
此文来自: 马开东博客 转载请注明出处 网址: http://www.makaidong.com
注释掉的代码和没有注释掉的代码两种情况是相同的。
区别:
setcontentview()一旦调用, layout就会立刻显示ui;而inflate只会把layout形成一个以view类实现成的对象,有需要时再用setcontentview(view)显示出来。一般在activity中通过setcontentview()将界面显示出来,但是如果在非activity中如何对控件布局设置操作了,这就需要layoutinflater动态加载。
public view inflate(int resourece,viewgroup root)
作用:填充一个新的视图层次结构从指定的xml资源文件中
resource:view的layout的id
root: 生成的层次结构的根视图
return 填充的层次结构的根视图。如果参数root提供了,那么root就是根视图;否则填充的xml文件的根就是根视图。
其余几个重载的inflate函数类似。
具体方法请看我下一篇 博客