Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 膨胀布局方法之间的区别是什么?这些参数的用途是什么_Android_Android Layout_View_Android Inflate - Fatal编程技术网

Android 膨胀布局方法之间的区别是什么?这些参数的用途是什么

Android 膨胀布局方法之间的区别是什么?这些参数的用途是什么,android,android-layout,view,android-inflate,Android,Android Layout,View,Android Inflate,我发现你们可以用这三种方式来膨胀布局。但无法在各自的语句中使用第二个和第三个参数。ViewGroup和attachedToroot参数的用途是什么 首次在活动外使用: LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate( R.layout.myNewInflatedLayout, Vi

我发现你们可以用这三种方式来膨胀布局。但无法在各自的语句中使用第二个和第三个参数。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 );

如果您查看developer.android.com作为参考,您将看到四种公共方法

最常用的两个是你在问题中写的

充气器。充气(R.layout.myNewInflatedLayout,视图组)

充气器。充气(R.layout.myNewInflatedLayout,视图组,
附件(附件)

下面是一段摘录自《关于布局膨胀的真正伟大》

第一个参数指向要充气的布局资源。 第二个参数是所创建层次结构的根视图 正在膨胀要附加到的资源。当第三个参数为 现在,它控制膨胀视图是否附着到 通货膨胀后供应的根


我建议你读到最后。希望这有帮助。:)

我将尝试回答您关于使用第二个参数和第三个参数的疑问

第二个参数是ViewGroup,在文档中描述为:

公共视图膨胀(int资源,视图组根)

从指定的xml资源展开新的视图层次结构。如果出现错误,则抛出InflateException

root可选视图,作为生成的层次结构的父级

返回

膨胀层次结构的根视图。如果提供了root,则为 根视图;否则它就是膨胀的XML文件的根

基于此,我认为有两种可能性:

  • 您将viewgroup设置为null。在这种情况下,您的布局将在活动中膨胀,但膨胀层次结构的根视图将是xml文件的根。因此,如果xml有一个相对布局或任何其他布局作为根元素,那么它将成为膨胀层次结构的根。你会有这样的想法:

    //无论此xml的根是什么,都是膨胀层次结构的根。

  • 如果将视图组设置为其他对象,则该对象将成为膨胀层次的根。所以,实际上你会有这样的东西:
    
    
    这里很明显,在本例中,指定的视图组将是膨胀层次的父级。所以我认为这完全取决于你的要求

  • 关于第三个参数:


    你可以在这个链接上阅读我的答案,了解更多。希望这会对您有所帮助。

    这可能会有所帮助:@gauravjain我的问题不仅是第二部分,而且是关于添加或不添加viewGroup的。我使用null作为第二个参数,但在我的活动中显示没有任何问题。我是否应该通过传递适当的视图组来附加到我的活动?有必要吗?使用它有什么好处?@Kenji我将整篇文章分享给你。你必须通读整篇文章。一切都在那里。这已经回答了。好的,谢谢。已经满了。但是我仍然得不到第三个参数,这是为什么?我的意思是“attachedToroot”你有没有关注我给出的链接,因为我想我在那里解释得很清楚。