android开发之LayoutInflater
来源:互联网 发布:数学建模含金量 知乎 编辑:程序博客网 时间:2024/05/22 05:16
转自:http://blog.csdn.net/xiaomao5200/article/details/6931392
LayoutInflater的使用,在实际开发种LayoutInflater这个类还是非常有用的,它的作用类似于 findViewById(),不同点是:
LayoutInflater是用来找layout下xml布局文件,并且实例化!
findViewById()是找具体xml下的具体 widget控件(如:Button,TextView等)。
补充总结:
1.一般来讲,我们用LayoutInflater做一件事:inflate。inflate这个方法总共有四种形式,目的都是把xml表述的layout转化为View。(This class is used to instantiate layout XML file into its corresponding View objects . It is never be used directly -- use getLayoutInflater() or getSystemService(String)getLayoutInflater() or getSystemService(String) to retrieve a standard LayoutInflater instance that is already hooked up to the current context and correctly configured for the device you are running on)。
2.获得LayoutInflater的方法:
1)通过SystemService获得
LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
2)从给定的context中获得
LayoutInflater inflater = LayoutInflater.from(context);
两者区别:实质是一样的,看方法(2)源码
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;
}
3.LayoutInflater.inflate()
将Layout文件转换为View,顾名思义,专门供Layout使用的Inflater。虽然Layout也是View的子类,但在android中如果想将xml中的Layout转换为View放入.java代码中操作,只能通过Inflater,而不能通过findViewById(),这一段描述有误,看如下代码 。看下面文档写的已经很清楚。
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout android:id="@+id/placeslist_linearlayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.placeslist_linearlayout);
linearLayout.addView(place_type_text);
这是可运行的,这上面的xml中,LinearLayout不再是Layout的代表,而只是一个普通的View。
- android开发之LayoutInflater
- android开发之LayoutInflater
- android 开发LayoutInflater之我见
- Android开发之--LayoutInflater的使用
- android开发--LayoutInflater类
- android开发--LayoutInflater类
- Android之LayoutInflater
- Android 之LayoutInflater详解
- Android 之 LayoutInflater
- Android之LayoutInflater详解
- Android之LayoutInflater
- android之LayoutInflater
- Android之LayoutInflater探索
- Android笔记之LayoutInflater
- Android 之LayoutInflater.from
- android之LayoutInflater详解_什么是LayoutInflater
- Android开发之TabHost与LayoutInflater的综合应用
- 【android开发】之【LayoutInflater(inflate )的使用】
- poen实现 把小写字母换成大写字母
- mac下svn:versions下载及使用
- 流行的JavaScript库对比【转载】
- Cannot find linux/config.h
- CONTAINING_RECORD IN EFI
- android开发之LayoutInflater
- 双向循环链表实现字符串或int类型数组的左移或右移操作C++
- Linux内核中断相关的数据结构 (三)
- C++内存管理之一(检测内存泄露)
- Android开源代码解读-基于SackOfViewAdapter类实现类似状态通知栏的布局
- ios 下拉刷新
- Winform datagridview画斜线表头
- java ant build
- 薄荷花开