gpt4 book ai didi

android - 奇怪的 fragment 行为 - 屏幕旋转后 View 层次结构中的空容器

转载 作者:行者123 更新时间:2023-11-30 02:40:00 25 4
gpt4 key购买 nike

我遇到了非常奇怪的 fragment 问题。在我的例子中,我有一个 fragment ,它被放置在 Activity 中。它有两种类型的布局:layout - 带有 list_container id 的 Frame Layoutlayout-land - 有两个 Layout:list_containerdetail_container

当用户以纵向模式进入 Activity 时,他会看到 TestListFragment。当他单击列表元素之一时,TestDetailFragment 被添加到后台堆栈。接下来,当用户旋转屏幕时,TestDetailFragment 从 backstack 中移除并放置在 ID 为 detail_container 的布局中。出现多么奇怪的部分,在检查 View 层次结构时有两个 list_container(一个是空的并且覆盖其余内容导致 View 重叠)。 TestFragment中的onActivityCreated被触发了两次。

我包括层次结构 View 和屏幕:

源代码:

这是正常行为吗?如何摆脱这种布局?

最佳答案

当您嵌套 fragment (即让 fragment 托管 fragment )时,需要通过以下方式设置子 fragment :

  • 让父 fragment 膨胀包含 <fragment> 的布局标签

  • 让父 fragment 使用 getChildFragmentManager()在执行 FragmentTransaction 时添加子 fragment

在这种情况下,问题中的代码使用 getActivity().getSupportFragmentManager() , 不是 getChildFragmentManager() .

老实说,我无法完全理解这是如何导致所引用的症状的,但根据对该问题的评论,它有所帮助。

关于android - 奇怪的 fragment 行为 - 屏幕旋转后 View 层次结构中的空容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25929562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com