LayoutInflater

Posted acg88688

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LayoutInflater相关的知识,希望对你有一定的参考价值。

LayoutInflater : 一个抽象类, 作用类似于findViewById

  • layoutInflater 用来找res/layout 下的xml文件, 并且实例化
  • findViewById 用来找xml文件中的控件

作用:

  • layoutInflater 对于一个没有被载入 或者 想要动态载入的界面,都需要使用LayoutInflater.inflater来载入
  • 对于一个已经载入的界面,可以通过Activity.findViewById方法获取其中的控件元素

获取layoutInflater:    本质都是调用Context.getSystemService()

  • LayoutInflater inflater = getLayoutInflater();
  • LayoutInflater inflater = LayoutInflater.from(context);
  • LayoutInflater inflater = LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

技术图片

加载ContextImpl时会将 LayoutInflater的ServiceFetcher注入到容器中。

PhoneLayoutInflater 继承自 LayoutInflater 

作用: 根据传入的view获取view的类完整路径,根据类的完整路径来构造对应的view对象

Activity 中的setContentView方法实际上调用的是Window的setContentView,而Window是抽象类,其具体实现类为PhoneWindow

以上是关于LayoutInflater的主要内容,如果未能解决你的问题,请参考以下文章