zoukankan      html  css  js  c++  java
  • LayoutInflater和inflate()方法的用法 .

    LayoutInflater作用是将layoutxml布局文件实例化为View类对象。

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

    (1)通过getSystemService获得

        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)getLayoutInflater()

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

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

     其实,这三种方式本质是相同的,从源码中可以看出:

    getLayoutInflater()

    ActivitygetLayoutInflater()方法是调用PhoneWindowgetLayoutInflater()方法,看一下该源代码:

        publicPhoneWindow(Context context) {

            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){

                throw new AssertionError("LayoutInflater not found.");

            }

            returnLayoutInflater;

        }

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

    总结:3个方法最终是调用content.getSystemService()

     

     

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

     

    其余几个重载的inflate函数类似。

     

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

    其余几个重载的inflate函数类似。

  • 相关阅读:
    站点目录中的文件夹被删除后,应用程序池被重启
    silverlight中UserControl的属性在xaml文件中敲不出来的问题
    提取自Discuz NT 的验证码生成
    Asp.net首页生成静态页的一个比较好的方法
    asp.net 字符串格式化
    阻止用户关闭网页,提示保存的解决方案IE/FF/OP通用(未经测试)
    .NET程序如何防止被注入(整站)
    好久没有进步了
    C#数组排序
    我的静态页面
  • 原文地址:https://www.cnblogs.com/xilin/p/2611066.html
Copyright © 2011-2022 走看看