在Android中LayoutInflater的用途是什么?


当前回答

该类用于将布局XML文件实例化到相应的View对象中。永远不能直接使用它——使用getLayoutInflater()或getSystemService(String)来检索一个标准的LayoutInflater实例,该实例已经连接到当前上下文,并且为正在运行的设备正确配置了。例如:

LayoutInflater inflater = (LayoutInflater)context.getSystemService
      (Context.LAYOUT_INFLATER_SERVICE);

参考:http://developer.android.com/reference/android/view/LayoutInflater.html

其他回答

LayoutInflater是Android的一个基本组件。您必须一直使用它来将xml文件转换为视图层次结构。

该类用于将布局XML文件实例化到相应的View对象中。永远不能直接使用它——使用getLayoutInflater()或getSystemService(String)来检索一个标准的LayoutInflater实例,该实例已经连接到当前上下文,并且为正在运行的设备正确配置了。例如:

LayoutInflater inflater = (LayoutInflater)context.getSystemService
      (Context.LAYOUT_INFLATER_SERVICE);

参考:http://developer.android.com/reference/android/view/LayoutInflater.html

充气机的作用

它接受一个xml布局作为输入(比如说)并将其转换为视图对象。

为什么需要

让我们设想一个场景,我们需要创建一个自定义列表视图。现在每一行都是自定义的。但是我们怎么做呢?不可能将xml布局分配给列表视图的一行。我们创建了一个View对象。因此,我们可以访问其中的元素(textview,imageview等),也分配对象作为列表视图行

无论何时我们需要在某处分配视图类型对象我们有自定义xml设计我们只需将它转换为object by inflater并使用它。

下面是一个示例,用于获取布局的根视图的引用, 膨胀它并使用setContentView(视图视图)

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    LayoutInflater li=getLayoutInflater();
    View rootView=li.inflate(R.layout.activity_main,null);
    setContentView(rootView);


}

Inflater实际上是将数据,视图,实例转换为可见的UI表示.. ..因此,它以编程的方式利用来自适配器等的数据馈送。然后将它与你定义的xml集成,告诉它数据应该如何在UI中表示