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函数类似。

  • 相关阅读:
    apache伪静态设置
    ZeroClipboard.js兼容各种浏览器复制到剪切板上
    table 如何给tr border颜色
    JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
    jquery操作select(增加,删除,清空)
    JS生成随机的由字母数字组合的字符串
    Redis连接(二)
    Redis集群(一)
    wap启用宏
    windows 10激活
  • 原文地址:https://www.cnblogs.com/xilin/p/2611066.html
Copyright © 2011-2022 走看看