源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Android中关于FragmentA嵌套FragmentB的问题

  • 时间:2020-05-01 21:29 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android中关于FragmentA嵌套FragmentB的问题
[b]问题描述:[/b] 在项目中Activity A中嵌套Fragment B,Fragment B中再嵌套Fragment C,如图: [img]http://files.jb51.net/file_images/article/201608/2016082511445746.png[/img] [b]问题1:[/b]在点击Activity A中主菜单1进行切换时,报错Fragment C already added。 [b]解决:[/b]在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();
}
[b]问题2:[/b]修改后发现,Fragment C布局添加失败,同时切换主菜单2时,报错。 [b]解决:[/b]这是Fragment的嵌套问题。FragmentB中的嵌套不能再用getActivity().getSupportFragmentManager();要用getChildFragmentManager(); 即上面代码应改为:
FragmentManager fm=getChildFragmentManager(); 
FragmentTransaction ft=fm.beginTransaction(); 
if(!sub1Fragment.isAdded()){ 
  ft.add(R.id.rl_fragment_container, sub1Fragment).commit(); 
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部