8

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

什么情况下必须使用它?

4

2 回答 2

17

更多技术解释

看到这个

改写为简单

基本上把你的 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 在编译时被缓存,以减少处理文件解析所需的处理量。

我希望这能让事情更清楚一点。

于 2011-02-22T18:09:16.107 回答
2

android中的Layout Inflator是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,

  • Activity 上的 UI 元素显示在 Activity 后面,对于用户来说是不可见的,Android 系统正在执行复杂的操作

What are these complex actions ?

  • 我们可以描述的简单方法是,为 android XML 文件中存在的每个视图创建对象,并在instantiation 此处创建。
  • Inflator service在这些对象创建的帮助下,这个过程被称为layout Inflation
于 2013-09-11T03:13:40.807 回答