Fragment的切换刷新UI布局以及Fragment的生命周期解释

曾经有同事问我切换Fragment的时候为啥不执行onResume这个方法,也没办法刷新ui界面

@Override
    public void onResume() {
        super.onResume();

    }

其实Fragment的切换刷新ui要在onHiddenChange这个方法中

   @Override
    public void onHiddenChanged(boolean hidden) {
        super.onHiddenChanged( hidden );
        if (hidden) {// 不在最前端界面显示
        } else {// 重新显示到最前端中
            initDBView();
        }
    }
这个方法就是判断Fragment可见与影藏的方法,如果Fragment创建commit后那么会执行onResume方法,如果Fragment建立后只是影藏了(hide),另一个Fragment用add方法, 然后再显示那么就会执行onHiddenChange这个方法,onResume是不执行的,onResume是和Activity有关系的。


Fragment的生命周期:



onAttach

当Fragment添加到Activity的时候调用,此方法只会调用一次

    onCreate

  创建Fragment的时候调用

     onCreateView

                当创建Fragment关联的View时候调用,并将此View关联到Activity视图树种

     onActivityCreate

当Fragment所关联的Activity创建完毕,也就是onCreate执行完毕并return的时候执行

     onstart

                启动Fragment的时候调用,Fragment可见

     onResume

Fragment可见,并且可以获取焦点

      onPause

Fragment暂停,Fragment失去焦点

      onStop

Fragment停止,Activity被停止或者Fragment入栈了

      onDestroyView

销毁Fragment关联的View

       onDestroy 

销毁Fragment

       onDettach

当Fragment从Activity失去关联,Fragment被销毁、被替换等

Fragment生命周期执行顺序:

当Fragment1被最初创建的时候

       onAttach-->onAttachFragment(Activity中的方法)-->onCreate-->onCreateView-->onActivityCreate-->onStart-->onResume

当手机锁屏了、回到桌面

       onPause-->onStop

       当手机打开屏幕

       onStart-->onResume

       当切换到Fragment2的时候Fragment1被Replace

       onPause-->onStop-->onDestroyView

      切换到Fragment1的时候

      onCreteView-->onActivityCreate-->onStart-->onResume

      如果Fragment1只是hide话,Fragment2 用add方法, 会执行这个方法onHiddenChange

  其它生命周期未见打印。


  最后Fragment在事物空间操作后一定要commit!

      

      


    

    


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值