0

我找到了很多关于 setRetainInstance 方法的信息,但是我想知道如何在 Navigation Drawer Activity 中实现这个方法?

我基本上有:

  • 一个活动,其中包含...
  • 一个 NavigationDrawerFragment,其中包含...
  • TopLevelMapFragment(显示谷歌地图)。

我的目标是防止在用户旋转屏幕时重新加载整个地图及其轨迹。Navigation Drawer Activity 中 setRetainingInstance 的基本概念是什么?我是否必须在 NavigationDrawerFragment 和 TopLevelMapFragment 中调用 setRetainingInstance(true)?

4

1 回答 1

0

我终于找到了我的问题的解决方案:当我创建 Navigation Drawer Activity 时,我依赖于 Android Studio 的默认 Navigation Drawer Activity-template。在此模板中,每次用户单击 Navigation Drawer 中的项目时都会调用FragmentTransaction- replace方法。问题:替换方法会破坏指定容器中的所有片段。所以如果你想让你的片段保持活力,永远不要使用替换方法。您必须改用add、show 和 hide方法。此外,我在我的 Google Maps-Fragment 中调用了 setRetainInstance(true) 方法,以便在用户旋转屏幕时片段保持活动状态。

于 2015-05-13T23:02:07.840 回答