android - 无法保存和恢复嵌套 fragment ?

标签 android android-fragments android-orientation android-nested-fragment

我有一个嵌套的 Fragment,我试图在给定方向更改的情况下恢复状态。

首先我的设置如下:

Activity -> ParentFragment (SetRetainInstance(true)) -> ChildFragment

在 My Child fragment 中,我有如下的 onSaveInstance 代码:

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    // Serialize the current dropdown position.
    outState.putInt(STATE_SELECTED_NAVIGATION_ITEM, getActivity().getActionBar()
            .getSelectedNavigationIndex());
}

但是,当我在所有 LifeCycle 事件中定位设备时,返回的 savedInstance 状态为 null。

我是否为 ChildFragment 做错了?为什么我的状态没有被保存和返回?

最佳答案

这是由于您的父 fragment 的 setRetainInstance(true) 造成的。 Android 保留一个 fragment 及其所有子 fragment 。所以你的 ChildFragment 没有被破坏,这就是你在 savedInstanceState 中得到 null 的原因。 onCreateView 的文档状态:

savedInstanceState If non-null, this fragment is being re-constructed from a previous saved state as given here.

您可以尝试注释掉 setRetainInstance(true) 并确保您获得正确的 savedInstanceState 值。

关于android - 无法保存和恢复嵌套 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25913187/

相关文章:

android - TabHost fragment 中的 MapActivity 在选项卡切换后消失

android - webview 中的图像在触摸时变得模糊

Android - 使用相机 Intent (ACTION_VIDEO_CAPTURE) 显示不同的方向

android - 处理方向变化的状态

java - SQLite 数据库打开时崩溃

java - 安卓socket连接失败?

java - IntelliJ IDEA 12 - Android 版本不兼容错误

android - 使用底部导航 View 的 viewpager 不会滑动 fragment

android:webView 处理方向变化

android - Google map api v2 在模拟器上显示只有缩放按钮的空白屏幕