layoutinflator有什么用途?

我是一名新的Android开发人员。 我试图从文档中理解布局充气机的使用,但一直无法理解。 在android中有什么布局的充气机的使用?

什么情况下,人们将不得不使用它?

Solutions Collecting From Web of "layoutinflator有什么用途?"

更多的技术解释

看到这个

重写为简单

基本上把你的xml平面文件想象成没有空气的气球,而LayoutInflator所做的就是将它吹起(或膨胀)成一个完整大小的气球,也就是你的视图和视图组。 所以平面文件会膨胀到视图中。 (可以随意批评这个隐喻,但是,我也是这么想的),并且就用法而言,请检查这篇文章 。 作者谈论手动通货膨胀的对象。

有些过于简单的解释如何实施。

在内部,映射到Android.Resource的caching子集的xmlparsing器会查找可视化的xml,并将其视为实例化并将其添加到视图组中。

在哪里看

rInflate内部rInflate分析xml文件并将结果添加到父视图。 查找具有特定签名的重载

 void rInflate(XmlPullParser parser, View parent, final AttributeSet attrs, boolean finishInflate) 

附加的注意事项

LayoutInflater的注释中

为了performance
*原因,查看通货膨胀在很大程度上依赖于在构build时完成的XML文件的预处理*。 因此,目前不可能在运行时在普通的XML文件中使用LayoutInflater和XmlPullParser。

因此,我们可以推断文件中的xml在编译时被caching,以减less处理parsing文件所需的处理量。

  • 有关如何提取caching数据的详细信息,请参阅XmlResourceParser loadXmlResourceParser(String file, int id, int assetCookie, String type)
  • 对于Layout Inflator来源,请参阅LayoutInflater.java
  • 有关如何浏览Android操作系统源代码的方法,请参阅此问题

我希望这个更清楚一点。


在Android的布局充气机是Android的一个非常重要的部分


  _ _ _ _ _ _ _ _ _ _ _ _ | | | _____________ | | Name |_____________|--|-----<2 objects(TextView,EditText)> | _____________ | | Age |_____________|--|-----<2 objects(TextView,EditText)> | _____________ | | Phone|_____________|--|-----<2 objects(TextView,EditText)> | | | | | | | | | ------ | | |BUTTON| -------|-----<1 objects(ButtonView)> | ------ | | | ----------------------- 

We can clearly see from the above figure,

  • 活动上的用户界面元素显示在用户看不见的活动后面,由android系统执行复杂的操作

What are these complex actions ?

  • 我们可以描述的简单方法是,为android XML文件中存在的每个视图创build对象,并在此instantiation
  • Inflator service的帮助下,完成这个对象的创build,这个过程被称为layout Inflation