你如何在LayoutInflater类的Android的inflate方法中使用第二个参数

时间:2013-04-09 04:36:01

标签: android android-arrayadapter layout-inflater

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文件的预处理。因此,目前无法在运行时使用LayoutInflaterXmlPullParser的普通XML文件。

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

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

2 个答案:

答案 0 :(得分:2)

inflate方法返回膨胀的xml的父视图

  • 如果您未通过根ViewGroup,膨胀的xml根视图 将被退回

  • 如果您通过了根ViewGroup, root ViewGroup的根视图将会 被退回

答案 1 :(得分:1)

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

例如:

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

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