LayoutInflater和inflate()方法的用法
来源:互联网 发布:软件测试怎么自学 编辑:程序博客网 时间:2024/05/18 12:33
LayoutInflater作用是将layout的xml布局文件实例化为View类对象。
实现LayoutInflater的实例化共有3种方法,
(1).通过SystemService获得
LayoutInflaterinflater = (LayoutInflater)context.getSystemServices(Context.LAYOUT_INFLATER_SERVICES);
Viewview = inflater.inflate(R.layout.main, null);
(2).从给定的context中获得
LayoutInflaterinflater = LayoutInflater.from(context);
Viewview = inflater.inflate(R.layout.mian, null);
(3).
LayoutInflaterinflater =getLayoutInflater();
(在
Activity
中可以使用,实际上是
View
子类下
window
的一个函数)
Viewlayout = inflater.inflate(R.layout.main,
null);
其实,这三种方式本质是相同的,从源码中可以看出:
getLayoutInflater():
Activity的getLayoutInflater()方法是调用PhoneWindow的getLayoutInflater()方法,看一下该源代码:
publicPhoneWindow(Contextcontext) {
super(context);
mLayoutInflater= LayoutInflater.from(context);
}
可以看出它其实是调用LayoutInflater.from(context)。
LayoutInflater.from(context):
public static LayoutInflaterfrom(Context context) {
LayoutInflaterLayoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(LayoutInflater==null){
thrownewAssertionError("LayoutInflaternot found.");
}
returnLayoutInflater;
}
可以看出它其实调用context.getSystemService()。
public View inflate(int Resourece,ViewGrouproot)
作用:填充一个新的视图层次结构从指定的XML资源文件中
reSource:View的layout的ID
root: 生成的层次结构的根视图
return 填充的层次结构的根视图。如果参数root提供了,那么root就是根视图;否则填充的XML文件的根就是根视图。
其余几个重载的inflate函数类似。
- LayoutInflater和inflate()方法的用法
- LayoutInflater和inflate()方法的用法
- LayoutInflater和inflate()方法的用法
- LayoutInflater和inflate()方法的用法
- LayoutInflater和inflate()方法的用法
- LayoutInflater和inflate()方法的用法
- LayoutInflater和inflate()方法的用法
- LayoutInflater和inflate()方法的用法
- android LayoutInflater和inflate()方法的用法
- LayoutInflater和inflate()方法的用法
- android LayoutInflater和inflate()方法的用法
- Android - LayoutInflater和inflate方法的用法
- android LayoutInflater和inflate()方法的用法
- inflate简介,LayoutInflater和inflate()方法的用法
- LayoutInflater和inflate的用法
- LayoutInflater和inflate的用法
- LayoutInflater和inflate的用法
- LayoutInflater、inflate的用法
- yum安装
- 取得电话当前的状态
- 导航栏先关设计
- [iphone][debug]putpkt: write failed: Broken pipe
- 蓝桥杯2012预赛java高职题分析
- LayoutInflater和inflate()方法的用法
- HDFS1.0源代码解析—DataNode状态切换
- poj 2503 Babelfish
- SQLite支持的数据类型(日期函数)
- 栈:自下而上输出【导入另一个栈再输出】
- MFC的 在对话框显示图片的方法
- 13个超棒的代码资源网站推荐
- 8大排序3大查找(一)
- 内核初始化优化宏(__init , __devinit ,etc.)