Android 中关于Fragment嵌套Fragment的问题

转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5802146.html html

问题描述:布局

在项目中Activity A中嵌套Fragment B,Fragment B中再嵌套Fragment C,如图:spa

 

问题1:在点击Activity A中主菜单1进行切换时,报错Fragment C already added。code

解决:在Framgent B中添加Fragment C 调用add()时先判断fragmentC.isAdded()htm

FragmentManager fm=getActivity().getSupportFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
if(!sub1Fragment.isAdded()){
    ft.add(R.id.rl_fragment_container, sub1Fragment).commit();
}

问题2:修改后发现,Fragment C布局添加失败,同时切换主菜单2时,报错。blog

解决:这是Fragment的嵌套问题。FragmentB中的嵌套不能再用getActivity().getSupportFragmentManager();要用getChildFragmentManager();get

即上面代码应改成:it

FragmentManager fm=getChildFragmentManager(); 
FragmentTransaction ft
=fm.beginTransaction();
if(!sub1Fragment.isAdded()){   ft.add(R.id.rl_fragment_container, sub1Fragment).commit(); }
相关文章
相关标签/搜索