`
mickey_hou
  • 浏览: 247678 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android LayoutInflater和inflate()方法的用法

阅读更多
LayoutInflater作用是将layout的xml布局文件实例化为View类对象。

实现LayoutInflater的实例化共有3种方法,

(1).通过SystemService获得

    LayoutInflater inflater = (LayoutInflater)context.getSystemServices(Context.LAYOUT_INFLATER_SERVICES);

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

(2).从给定的context中获得

    LayoutInflater inflater = LayoutInflater.from(context);

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

(3).

    LayoutInflater inflater =getLayoutInflater();(在Activity中可以使用,实际上是View子类下window的一个函数)

    View layout = 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) {

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

        if(LayoutInflater== null){

            thrownew AssertionError("LayoutInflaternot found.");

        }

        returnLayoutInflater;

    }

可以看出它其实调用context.getSystemService()。


public View inflate(int Resourece,ViewGrouproot)
作用:填充一个新的视图层次结构从指定的XML资源文件中
reSource:View的layout的ID
root: 生成的层次结构的根视图
return 填充的层次结构的根视图。如果参数root提供了,那么root就是根视图;否则填充的XML文件的根就是根视图。

其余几个重载的inflate函数类似。
分享到:
评论

相关推荐

    Android 中LayoutInflater.inflate()方法的介绍

    LayoutInflater.inflate()方法是Android开发中最常用的方法之一,用于将布局文件转换成View对象,以便在Android应用程序中使用。通过对LayoutInflater.inflate()方法的理解和应用,可以实现更加复杂和多样化的...

    Android LayoutInflater.inflate()详解及分析

    总结来说,`LayoutInflater.inflate()` 方法在Android开发中扮演着关键角色,它帮助我们动态地构建和组合UI。理解`inflate()` 的参数以及它们如何影响视图的创建和布局是每个Android开发者必备的知识。正确使用`...

    Android LayoutInflater中 Inflate()方法应用

    总的来说,`LayoutInflater` 的`inflate()` 方法是Android应用中动态加载布局的关键,它与`findViewById()` 和`ViewStub` 配合使用,可以灵活地处理各种界面构建需求。了解这些方法的正确使用方式,对于提升Android...

    Android LayoutInflater.inflate源码分析

    `LayoutInflater.inflate()` 方法是我们经常使用的一个核心方法,尤其是在创建自定义Adapter或动态加载布局时。接下来我们将深入探讨`LayoutInflater.inflate()` 的源码,以理解其工作原理和不同参数版本之间的差异...

    LayoutInflater源码分析 inflate方法的区别

    本篇文章将深入探讨`LayoutInflater`的`inflate`方法之间的区别,帮助开发者更好地理解和利用这个强大的功能。 首先,`LayoutInflater`有两个主要的`inflate`方法: 1. `inflate(@LayoutRes int resource, ...

    LayoutInflater inflate 示例demo

    首先,`LayoutInflater`通常从资源ID获取,可以使用`getSystemService()`方法和`Context.LAYOUT_INFLATER_SERVICE`常量来获取: ```java LayoutInflater inflater = (LayoutInflater) getSystemService(Context....

    Android LayoutInflater的用法

    `LayoutInflater`还提供了`cloneInContext()`方法,用于创建一个新的`LayoutInflater`实例,该实例具有与原始实例相同的布局工厂和标签前缀,但其上下文被替换为指定的新上下文,这对于处理多线程或在不同上下文中...

    Android 中级应用 一 LayoutInflater 的使用

    在Android开发中,`LayoutInflater`是一个至关重要的工具类,它主要负责将XML布局文件转换成View对象并添加到视图...通过熟练掌握`LayoutInflater`的使用,开发者可以更灵活地设计和构建Android应用程序的用户界面。

    Android LayoutInflater加载布局详解及实例代码

    在Android应用开发中,我们通常使用LayoutInflater来动态地加载和插入布局,这在创建自定义视图、处理动态数据或者在运行时创建视图时非常有用。本文将深入解析LayoutInflater的工作原理,并提供实例代码来帮助理解...

    LayoutInflater inflate例子

    总结一下,`LayoutInflater` 的`inflate()` 方法是Android开发中实现动态布局和视图复用的关键工具。理解其工作原理和用法,可以提高代码的灵活性和效率,使开发者能更好地控制应用程序的界面呈现。通过合理利用`...

    inflate的使用

    总之,`inflate`是Android开发中不可或缺的一部分,理解并熟练掌握其使用方法对于提升开发效率和优化用户体验有着直接的影响。通过深入学习和实践,开发者可以更好地利用`inflate`来构建高效、灵活的Android应用。

    Android 中LayoutInflater的使用

    2. **使用方法**:通过`LayoutInflater.from(Context)`获取LayoutInflater实例,然后调用`inflate()`方法加载布局。 3. **inflate()方法**:接受两个参数,第一个是XML布局资源ID,第二个是父视图,用于确定布局的...

    LayoutInflater.from(context).inflate()方法的调研

    本文将深入探讨`LayoutInflater.from(context).inflate()`的工作原理、使用方法以及一些最佳实践。 首先,`LayoutInflater`是Android提供的一个类,它的主要任务是将XML布局文件解析成对应的View或ViewGroup对象。`...

    Android开发实现自定义Toast、LayoutInflater使用其他布局示例

    使用 LayoutInflater.inflate() 方法可以将自定义的布局文件 inflate 到 View 中,这样可以方便地自定义 Toast 的样式和布局。同时,我们也可以使用 Toast 的 setView() 方法将自定义的 View 添加到 Toast 中,从而...

    android中LayoutInflater的使用.pdf

    `LayoutInflater`的使用方法: 通常有两种方式来获取`LayoutInflater`实例: 1. 使用`LayoutInflater.from(Context context)`静态方法: ```java LayoutInflater inflater = LayoutInflater.from(this); View view =...

    Android中使用LayoutInflater要注意的一些坑

    总之,理解和正确使用LayoutInflater.inflate()的参数是避免Android开发中出现布局问题的关键。在使用时,确保提供适当的父容器,合理设置`attachToRoot`,并且始终关注视图的测量和布局过程。通过这些注意事项,...

    layoutinflater中嵌套layoutinflater

    `LayoutInflater`的核心是`inflate()`方法,它解析XML布局文件,并使用`createView()`创建对应的视图对象。在嵌套的情况下,`inflate()`会递归地处理XML中包含的子视图,包括其他`LayoutInflater`实例。 最后,`...

Global site tag (gtag.js) - Google Analytics