Android 个片段中的充气器

Inflater in Android Fragments

View rootView = inflater.inflate(R.layout.check_fragment,container,false);

在这种情况下,布尔值有什么用 false ? 我是 Android 编程的初学者,有人可以向我详细解释一下吗? 提前致谢。

true 表示 "please add the inflated View to container as a child for me"。 false 表示 "please do not add the inflated View to container as a child for me, as other code will handle that later on".

对于片段,您允许 FragmentManager 控制在其容器中添加和移除片段的 View

你在 inflate() 中完全需要 container 的原因是因为某些布局管理器 类(特别是 RelativeLayout)需要知道它们的容器才能设置正确设置布局规则。

https://developer.android.com/reference/android/view/LayoutInflater.html

如果将其设置为 true,则视图将自动添加到其父视图(第二个参数)。大多数时候它应该是假的,但有时它是需要的,特别是当你在膨胀的 xml.

中使用 <merge> 作为根时

膨胀的层次结构是否应该附加到根参数?如果为 false,root 仅用于为 XML.

中的根视图创建正确的 LayoutParams 子类

来自docs

attachToRoot - Whether the inflated hierarchy should be attached to the root parameter? If false, root is only used to create the correct subclass of LayoutParams for the root view in the XML.

在片段中,您应该将 false 作为附加参数传递,这样视图层次结构将不会附加到 onCreateView 中传递的 ViewGroup 父级。此附件将在稍后发生,Android 会处理它。该容器仅传递给 onCreateView,因此您可以了解您的片段视图层次结构将去往的容器。

实际上将此参数设置为 true 可能会导致异常或至少一些奇怪的行为。