我终于在 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/