LayoutInflater类的inflate方法中的第二个参数怎么用,Android

Posted

技术标签:

【中文标题】LayoutInflater类的inflate方法中的第二个参数怎么用,Android【英文标题】:how do you use the second parameter in the inflate method of the LayoutInflater class, Android 【发布时间】:2013-03-31 09:06:03 【问题描述】:

LayoutInflater 抽象类的 inflate 方法具有以 ViewGroup 为根的 inflate 方法的第二个参数。在文档中,它被称为“作为生成层次结构的父级的可选视图”。

谁能举例说明如何使用这个参数?你会在里面放什么? ViewGroup 可以是任何类型的布局,例如 LinearLayout

我还不太明白如何处理这个参数。如果您正在膨胀的视图不是此处输入的布局的一部分,那么它会给出错误。不明白它的目的。

更多来自文档:

public View inflate (XmlPullParser parser, ViewGroup root)

Added in API level 1 Inflate a new view hierarchy from the specified xml node. Throws InflateException if there is an error.

出于性能原因,视图膨胀在很大程度上依赖于在构建时完成的 XML 文件的预处理。因此,目前无法在运行时在纯 XML 文件上使用 LayoutInflaterXmlPullParser

参数 包含视图层次结构描述的解析器 XML dom 节点。

root 可选视图,作为生成层次结构的父级。 退货 膨胀层次结构的根视图。如果提供了 root,则这是根视图;否则它是膨胀的 XML 文件的根。

【问题讨论】:

我很确定你可以传递null,因为它是一个可选参数。 【参考方案1】:

inflate 方法返回膨胀后的 xml 的父 View

如果你没有通过根 ViewGroup,膨胀的 xml 根视图 将被退回

如果您传递根 ViewGroup,根 ViewGroup 的根视图将 被退回

【讨论】:

【参考方案2】:

说实话,我不确定其中的哪一部分让您感到困惑。您可以传入任何 ViewGroup,作为您动态创建的视图的父级。

例如:

private static View mView = inflater.inflate(R.layout.fragment_featured, container, false);

这将扩展容器内 fragment_featured xml 文件中包含的布局(作为父级)。容器 ViewGroup 的类型取决于您。

【讨论】:

以上是关于LayoutInflater类的inflate方法中的第二个参数怎么用,Android的主要内容,如果未能解决你的问题,请参考以下文章

LayoutInflater.inflate()方法的ViewGroup参数问题

转载《 LayoutInflater 的inflate函数用法详解》

Android - LayoutInflater和inflate方法的用法

[Android FrameWork 6.0源码学习] LayoutInflater 类分析

Android LayoutInflater.inflate的使用及源码分析

Android LayoutInflater.from(context).inflate()方法的作用