解决fragment中嵌套fragment加载切换的问题


     private   FragmentManager mFm;
     private   Fragment mContent; //正在显示的fragment
      * 设置默认的fragment,即第一次加载界面;
      */
     private   void   setDefaultFragment(Fragment fm) {
         mFm = getFragmentManager();
         FragmentTransaction mFragmentTrans = mFm.beginTransaction();
 
         mFragmentTrans.add(R.id.id_addfram, fm).commit();
 
         mContent = fm;
     }
 
     /**
      * 修改显示的内容 不会重新加载
      */
     public   void   switchContent(Fragment from,Fragment to) {
         if   (mContent != to) {
s//将下一个设置为正在显示的
             mContent = to;
             FragmentTransaction transaction = mFm.beginTransaction();
// 先判断即将要跳到的fragment是否被add过
             if   (!to.isAdded()) { 
// 隐藏当前的fragment,add下一个到Activity中
                 transaction.hide(from).add(R.id.id_addfram, to).commit(); 

             else   {
// 隐藏当前的fragment,显示下一个fragment
                 transaction.hide(from).show(to).commit(); 
             }
         }
     }
 
     /**
      * 修改显示的内容 但会重新加载 *
      */
     public   void   switchContent2(Fragment to){
         FragmentTransaction transaction = mFm.beginTransaction();
         transaction.replace(R.id.id_addfram,to);
         //transaction.addToBackStack(null);
         transaction.commit();
     }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

四角天空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值