我是一名新的 Android 开发人员。我试图从文档中了解 Layout inflator 的使用,但无法理解。android中布局充气机的用途是什么?
什么情况下必须使用它?
我是一名新的 Android 开发人员。我试图从文档中了解 Layout inflator 的使用,但无法理解。android中布局充气机的用途是什么?
什么情况下必须使用它?
看到这个
基本上把你的 xml 平面文件想象成一个没有空气的气球,LayoutInflator 所做的就是把它吹起来(或膨胀)成一个全尺寸的气球,也就是你的视图和视图组。所以平面文件会膨胀到视野中。(请随意批评这个比喻,但无论如何我都是这么想的)并且就用法而言,请查看这篇文章。作者谈到了物体的手动膨胀。
在内部,一个映射到 Android.Resource 的缓存子集的 xml 解析器查找被识别为视图的适用 xml,实例化它们并将它们添加到视图组中。
LayoutInflator内部rInflate
会解析 xml 文件并将结果添加到父视图。查找具有特定签名的重载
void rInflate(XmlPullParser parser, View parent, final AttributeSet attrs, boolean finishInflate)
在评论中LayoutInflater
出于性能
* 的原因,视图膨胀在很大程度上依赖于在构建时完成的 XML 文件的预处理 *。因此,目前不可能 * 在运行时在纯 XML 文件上使用带有 XmlPullParser 的 LayoutInflater。
因此,我们可以推断出文件中的 xml 在编译时被缓存,以减少处理文件解析所需的处理量。
XmlResourceParser loadXmlResourceParser(String file, int id, int assetCookie, String type)
文件
Resources.java。我希望这能让事情更清楚一点。
_ _ _ _ _ _ _ _ _ _ _ _
| |
| _____________ |
| 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,
What are these complex actions ?
instantiation
此处创建。Inflator service
在这些对象创建的帮助下,这个过程被称为layout Inflation