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

替换方向更改后丢失的碎片

姚浩歌
2023-03-14

我有一个活动,它在onCreate中加载一个片段(比如Fragment1)。当用户按下Fragment1中的按钮时,我用一个新片段替换Fragment1,比如Fragment2。问题是,在Fragment2中更改方向时,会重新创建活动,并显示Fragment1而不是Fragment2。(因为我在onCreate中创建了Fragment1)我如何坚持Fragment2并在方向更改时保持其状态?

谢谢

共有1个答案

孙朝明
2023-03-14

当一个片段事务发生时,分配一个变量,这样您就知道要创建哪个片段。然后重写OnSavedInstanceState并将变量传递到包中。

然后在方向更改时,将调用onCreate,您可以从savedInstanceStateBundle检索变量。然后,您可以选择在onCreate中“加载”哪个片段。

 类似资料:
  • 我已经设置了一个在Docker中运行的基本MariaDB实例——基本上是从使用Kitematic UI启动容器开始,更改设置,然后让它运行。 今天,我想做一个备份,所以我用Kitematic更改了端口,这样我就可以从机器上访问它来进行自动备份。在Kitematic中更改端口后,它似乎启动了一个新的MariaDB容器(即,我的所有数据似乎都被删除)。 这是预期的行为吗?而且,更重要的是,是否有任何方

  • 我想知道是否有一种方法可以在前面的片段变得可见时,一个接一个地替换片段。基本上我需要一个接一个地加载8个碎片截图。 加载frag1->截图(视图就绪时)->(截图后)将Frag1替换为frag2->截图(视图就绪时)->(截图后)将Frag2替换为frag3->截图(视图就绪时)->...诸如此类

  • 由于不推荐使用TabActivity,我需要找到一种方法来使用片段。在我知道它如何工作之前,我已经使用了碎片,但我需要一个指南来创建我的标签主机与碎片活动。我在互联网上找到了几个例子,它们都是关于将片段放入标签的容器中的。

  • 问题内容: 如何解决在PHP中重定向后丢失会话的问题? 最近,我遇到了一个非常常见的问题,即在重定向后丢失会话。在搜索该网站后,我仍然找不到任何解决方案(尽管这是最接近的解决方案)。 更新资料 我找到了答案,我想将它发布在这里,以帮助遇到同样问题的任何人。 问题答案: 首先,执行以下常规检查: 确保在任何会话被调用之前被调用。因此,一个安全的选择就是将其放在页面的开头,紧接着在开始声明之后,再放在

  • 请注意,此问题不是以下问题的重复: https://stackoverflow.com/questions/19006776/onactivityresult-not-working-with-fragments onActivityResult不处理片段 此外,之前也有人问过类似的问题,但这并没有提到方向的变化(目前尚未解决)。 如果不切换方向,则会调用片段中的onActivityResult方

  • 我正在我的项目中使用ActionBar。我想改变ActionBar项目的方向意味着在屏幕的右侧找到选项卡图标和徽标,并在屏幕的左侧找到菜单项。我在谷歌上搜索了一下,但并没有找到任何有用的东西,我还阅读了API 14中主题和样式的xml资源,但我再次并没有找到任何解决方案。