LayoutInflater是一个非常强大的工具,可以做很酷的事情;例如从布局资源中膨胀片段并正确处理其生命周期。例如:
<fragment class="com.test.TestFrag".../>
在获取上述布局并通过LayoutInflater运行时,您将获得Fragment生成的视图。然后,您可以将此视图添加到任何ViewGroup,并且运行的片段实例仍然遵循Fragment生命周期。我的问题是,你如何从这个创建的视图中获取父片段?
答案 0 :(得分:0)
在运行时,确实没有机制可以让片段知道ViewGroup托管它的内容。也就是说,由于您的类将扩展基础Fragment类,因此没有什么可以阻止您向Fragment添加实例变量以跟踪其父级的ID。如果使用FragmentTransaction将片段添加到视图层次结构中,则必须指定将托管它的容器,因为FragmentTransaction :: add需要包含片段的ViewGroup的ID。如果您使用XML标记将其添加到ViewHierarchy,我不明白为什么您需要在运行时确定其父级,因为它不是动态添加的。