- 浏览: 294351 次
- 性别:
- 来自: 上海
最新评论
-
再_见孙悟空:
写的不错
Dialog -
a549262189:
支持下,正好在学习这块的内容!
Android Gesture Detector -
dcsff:
受教了
LayoutInflater -
庆_啊:
真厉害。
LayoutInflater -
ghj234:
学习了,哈哈
LayoutInflater
一般来讲,我们用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
1. Context.public abstract Object getSystemService (String name) :Return the handle to a system-level service by name. The class of the returned object varies by the requested name. 具体参见文档。
2. 2种获得LayoutInflater的方法
(1)通过SystemService获得
LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
(2)从给定的context中获取
(3)二者区别:实质是一样的,请看源码
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。
4. findViewById有2中形式
R.layout.xx 是引用res/layout/xx.xml的布局文件(inflate方法),R.id.xx是引用布局文件里面的组件,组件的id是xx...(findViewById方法)。看看R.java配置文件吧,R对文件分类管理,多写几个layout.xml后你会发现,所有的组件id都能用R.id.xx来查看,但是组件不在setContentView()里面的layout中就无法使用,Activity.findViewById()会出现空指针异常 。
(1)Activity中的findViewById()
(2)View中的findViewById()
5.
评论
发表评论
-
如果在Eclipse中debug
2010-05-02 14:15 0最基本的操作是: 1, 首先在一个java文件中设断点,然后 ... -
How to download sourcecode of android with cygwin
2010-04-14 16:07 5077cygwin是一个在windows平台 ... -
TelephoneManager
2010-03-08 16:04 01. protected void onCreate(Bun ... -
eclipse c
2010-03-07 21:05 0Eclipse 除 了可以开发Java之外,还支持了许 ... -
android sdk安装
2010-02-02 23:37 34471.下载:http://developer.android.c ... -
google map my demo
2010-02-02 23:36 3157<uses-library android:name=& ... -
Toast
2010-02-02 23:35 14211. (1) public class ToastActi ... -
如何在MapView上画图
2010-02-02 23:34 1554http://ophone8.com/thread-4340- ... -
Service
2010-02-02 23:33 31091. Service生命周期 (1)Servic ... -
Notification
2010-02-02 23:33 18811. Notification构造器的参数 分别为: ... -
导航相关概念
2010-02-02 23:32 16711. Google Map的定位 (1)Goog ... -
PendingIntent和Intent
2010-02-02 23:28 9488Notification n = new Notificati ... -
Broadcast调用Service做的一个定时器
2010-02-02 23:28 36681. public class AlarmActivity ... -
Broadcast Receiver
2010-02-02 23:27 8654Broadcast Receiver用于接收并处理广播通知(b ... -
Android's Components 生命周期
2010-02-02 23:27 2105Android中,Component(activity、ser ... -
Activity文档翻译
2010-02-02 23:26 1539转自:http://www.blogjava.net/m ... -
Intent
2010-01-20 10:51 011 public class MumActivity ex ... -
aidl
2010-01-05 11:24 30221. android进程之间如何通讯呢(在不同的进程中怎样传递 ... -
Gallery 画廊
2009-12-17 20:25 33271. images.xml <?xml ver ... -
Intent中的Flag参数
2009-12-16 18:12 6439Intent i = new Intent(B.this, C ...
相关推荐
LayoutInflater源码分析 inflate方法的区别
主要介绍了Android LayoutInflater分析的相关资料,需要的朋友可以参考下
Android 中LayoutInflater的使用
LayoutInflater Layout 与 Inflater[扩充]两个单词的合并,可以理解为:当前Activity 布局的扩充.
通过LayoutInflater.Factory实现主题切换功能,详见:http://blog.csdn.net/llew2011
Android 中LayoutInflater(布局加载器)之实战篇 博客的Demo 博客地址: http://blog.csdn.net/l540675759/article/details/78112989 两种方式实现小红书的引导页: (1)自定义View (2)自定义LayoutInflater....
NULL 博文链接:https://lxmgfd.iteye.com/blog/979716
LayoutInflater.from(context).inflate()方法的调研
android inflate demo,方便新手使用,下载导入android studio就可直接运行,简单明了的展现inflate不同参数的区别
在android中,LayoutInflater有点类似于Activity的findViewById(id),不同的是LayoutInflater是用来找layout下的xml布局文件,并且实例化!而findViewById()是找具体xml下的具体 widget控件(如:Button,TextView等)。...
NULL 博文链接:https://yufeng-zhu.iteye.com/blog/1676207
android中LayoutInflater的使用.pdf
JavaScript应用实例-LayoutInflater.js
Android LayoutInflater加载布局详解 对于有一定Android开发经验的同学来说,一定使用过LayoutInflater.inflater()来加载布局文件,但并不一定去深究过它的原理,比如 1.LayoutInflater为什么可以加载layout文件? ...
down-test-Android 获得 LayoutInflater 实例的三种方式
在平时的开发过程中,我们经常会用LayoutInflater这个类,比如说在Fragment$onCreateView和RecyclerView.Adapter$onCreateViewHolder中都会用到。它的用法也无非就是LayoutInflater.inflate(resourceId, root, ...
这是老外写的经典Android代码,对学习AsyncTask、JSONAdapter、LayoutInflater很有用