我发现你可以用这3种方式来扩充布局。但无法在各自的陈述中使用第2和第3个参数。什么是ViewGroup和attachedToroot参数?
首次使用外部活动:
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate( R.layout.myNewInflatedLayout, ViewGroup);
View view = inflater.inflate( R.layout.myNewInflatedLayout, ViewGroup, attachedToroot);
Button myButton = (Button) view.findViewById( R.id.myButton );
我将尝试回答您对使用第二个参数和第三个参数的疑虑。
第二个参数是ViewGroup,在文档中描述为:
public View inflate(int资源,ViewGroup根)
从指定的xml资源中扩充新的视图层次结构。如果出现错误,则抛出InflateException。
root可选视图是生成的层次结构的父级。
返回
膨胀层次结构的根视图。如果提供了root,则这是根视图;否则它是膨胀的XML文件的根。
基于此,我看到了两种可能性:
<xml> // Whatever is the root of this xml, is your root for the inflated hierarchy.
<Your Viewgroup>
<Your xml>
</Your Viewgroup>
在这里很明显,在这种情况下,你指定的视图组将是膨胀层次结构的父级。所以我认为这完全取决于你的要求。关于第三个参数:Confusion regarding inflater.inflate Android documentation
您可以在此链接上阅读我的答案,以了解更多相关信息。希望这会帮助你。
如果您查看developer.android.com以获得参考,您将看到四种公共方法。
最常用的两个是你在问题中写的。
inflater.inflate( R.layout.myNewInflatedLayout, ViewGroup);
inflater.inflate( R.layout.myNewInflatedLayout, ViewGroup,
attachedToroot);
这是一个真正伟大的article关于布局通胀的摘录。
第一个参数指向要扩充的布局资源。第二个参数是您要为要附加的资源充气的层次结构的根视图。当存在第三个参数时,它控制膨胀后的视图是否在充气后附加到提供的根。
我建议你一直读到最后。希望这有帮助。 :)