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 文件上使用 LayoutInflater
和 XmlPullParser
。
参数 包含视图层次结构描述的解析器 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 类分析