android - 配置更改后 Activity 引用错误的嵌套 fragment

标签 android android-fragments android-fragmentactivity android-support-library

我终于在 support library 中研究了新的嵌套 fragment API修订版 11。

在我尝试使用嵌套 fragment 持有的 Activity 引用之前,一切都运行良好。 配置更改后,childFragment 似乎没有分离并重新附加到新 Activity 。

基本上在方向更改后,我的 childFragment 处于不一致状态,我无法通过 getActivity() 获得正确的 Activity 实例.

我设法使用 getParentFragment() 得到了正确的一个.getActivity() 并且有效,但我认为这不是正确的方法。

这是我第一次在 parentFragment 中添加 fragment 的代码,之后 fragment 会自动添加回 parentFragment:

        public void addChildFragment() {
            Fragment f = getFragment().getChildFragmentManager().findFragmentByTag( FRAGMENT_CHILD_TAG );
            if (f == null) {
                FragmentTransaction ft = getFragment().getChildFragmentManager().beginTransaction();

                f = new TrackBrowserFragment();
                f.setArguments( getFragment().getArguments() );

                ft.add( R.id.fragment_album_detail_child_fragment_layout, f , FRAGMENT_CHILD_TAG );
                ft.commit();
            }
        }

Activity 实例中的这种不一致显然会导致我的 fragment 出现多个问题(与服务、广播接收器等绑定(bind))。 我可能做错了什么,因为我认为这不是嵌套 fragment 的正确行为。

所以:

我的代码有问题吗? 这是嵌套 fragment 的预期行为吗?

我错过了什么吗? 我应该自己拆卸/安装它吗?

谢谢

最佳答案

我发现了问题所在,我在父 fragment 中使用了 setRetainInstance(true) 并保持子 fragment 分离。

在我删除该行后,一切都按预期进行

关于android - 配置更改后 Activity 引用错误的嵌套 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14464570/

相关文章:

java - 如何从android studio(Java)中的其他库获取日志

java - 带有抽屉导航的 MapFragment

android - 什么时候 fragment 最终附加到 Activity ?

android - fragment 之间如何通信?

android - 可以在多个 Activity 中重复使用 Fragment 实例吗?

android - 在运行时列出可用的 Android 资源包?

android - 在 Android webview 应用程序中播放本地音频文件

Android 应用程序在导入 Facebook 库后在 Eclipse 中出现红色感叹号

android - 如何防止 FragmentPagerAdapter 提前加载下一个 Fragment?

java - 当我在第二个 fragment 时如何隐藏主页 fragment ?