当前位置: 首页 > 知识库问答 >
问题:

layoutflater attachToRoot参数是什么意思?

叶明辉
2023-03-14

Attachtoroot:膨胀的层次结构是否应该附加到根参数?如果为false,则root仅用于为XML中的root视图创建正确的LayoutParams子类。

有人能更详细地解释一下吗,特别是根视图是什么,并展示一个truefalse值之间行为变化的示例吗?

共有1个答案

屠嘉勋
2023-03-14

“第三个”参数attachToRoot是true还是false的主要区别在于。

当您将attachToRoot

true:立即将子视图添加到parent
false:将子视图添加到parent,而不是现在。
以后再添加。`

inflater.inflate(child,parent,false);
parent.addView(child);   
inflater.inflate(child,parent,true);

当您不负责将子视图添加到父视图时,您永远不要将attachToRoot作为true传递。
(例如当添加片段时)

public View onCreateView(LayoutInflater inflater,ViewGroup parent,Bundle bundle)
  {
        super.onCreateView(inflater,parent,bundle);
        View view = inflater.inflate(R.layout.image_fragment,parent,false);
        .....
        return view;
  }

如果您将第三个参数传递为true,您将因为这个家伙而得到IllegalStateException。

getSupportFragmentManager()
      .beginTransaction()
      .add(parent, childFragment)
      .commit();

因为您已经错误地在onCreateView()中添加了子片段。调用add将告诉您子视图已经添加到父视图,因此IllegalStateException。
这里您不负责添加childView,而是由FragmentManager负责。所以在这种情况下总是传递false。

 类似资料:
  • 什么是at在这组java代码中是什么意思?我试过搜索,但找不到任何解释。有人知道,请给我解释一下。非常感谢你。 BatchFileController.java

  • 问题内容: 我找不到有关VM参数的文档。似乎有必要在Mac上通过LWJGL运行JOGL。这是什么意思?似乎某些进程想要线程0。这正确吗? 请注意:我的主类中有一个方法。它似乎没有覆盖任何内容,并且我没有实现runnable。 我在此处运行的示例源代码:http : //www.lwjgl.org/guide 问题答案: 从Java 1.7.0_u4开始,此选项记录在Mac OSX平台上。 该选项使

  • 问题内容: 该链接指出以下内容: 具有实际类型参数的泛型类型的实例化称为参数化类型。示例(参数化类型): 那么什么是参数化类型? 要么 问题答案: 它们都是参数化类型:以其他类型为参数的类型。 您在表达式的两侧具有不同类型的事实是无关紧要的,并且与多态行为有关,即因为是的子类型。

  • 我是javascript的新手。我曾经读过关于SAEF的文章,但我仍然有疑问,代码如下:

  • 我找不到VM参数< code >-xstartonfirsthread 的文档。似乎有必要让我在Mac上通过LWJGL运行JOGL。这是什么意思?似乎是某个进程想要线程0。这是正确的吗? 请注意:我的主类中有一个 方法。它似乎没有覆盖任何东西,我没有实现可运行的。 我在这里运行的源代码示例:http://www.lwjgl.org/guide

  • 我将以下代码添加到我用Java创建的新类中: 我理解public、static和void的含义,但()的含义是什么?