Android开发

Android中关于FragmentA嵌套FragmentB的问题

本文主要是介绍Android中关于FragmentA嵌套FragmentB的问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

问题描述:

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

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

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

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

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

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

即上面代码应改为:

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。

这篇关于Android中关于FragmentA嵌套FragmentB的问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!