Fragment 使用add 和 hide 生命周期
来源:互联网 发布:ubuntu vim readonly 编辑:程序博客网 时间:2024/06/02 18:14
1.先add两个Fragment ,然后立马hide这两个Fragment ,再然后显示其中一个Fragment
//先addFragmentTransaction beginTransaction = getFragmentManager().beginTransaction();videoFragment = new NewSDAndCloudVideoFragment(NewSDAndCloudVideoFragment.SRC_FROM_PLATFORM);sdFragment = new NewSDAndCloudVideoFragment(NewSDAndCloudVideoFragment.SRC_FROM_SD);beginTransaction.add(R.id.new_content_fl,videoFragment);beginTransaction.add(R.id.new_content_fl,sdFragment);beginTransaction.commit();//在hideFragmentTransaction transaction = getFragmentManager().beginTransaction();transaction.hide(webFragment);transaction.hide(videoFragment);transaction.hide(sdFragment);transaction.commit();//在显示其中的一个FragmentFragmentTransaction transaction = getFragmentManager().beginTransaction();transaction.show(videoFragment);transaction.commit();
其生命周期的显示如下:
I/Fragment_A(18015): onAttachI/Fragment_A(18015): onCreateI/Fragment_A(18015): onCreateViewI/Fragment_A(18015): onActivityCreatedI/Fragment_A(18015): onAttachI/Fragment_A(18015): onCreateI/Fragment_A(18015): onCreateViewI/Fragment_A(18015): onActivityCreatedI/Fragment_A(18015): onHiddenChanged : trueI/Fragment_A(18015): onHiddenChanged : trueI/Fragment_A(18015): onHiddenChanged : falseI/Fragment_A(18015): onStartI/Fragment_A(18015): onStartI/Fragment_A(18015): onResume : isHiden =falseI/Fragment_A(18015): onResume : isHiden =true
ps: 其创建过程 是一个Fragment 从 onAttach 到 onActivityCreated执行完成之后,在执行另为的一个, 然后交替执行 onStart 和 onResume
2. 如果只add两个Fragment 其生命周期如下
I/Fragment_A(27457): onAttachI/Fragment_A(27457): onCreateI/Fragment_A(27457): onCreateViewI/Fragment_A(27457): onActivityCreatedI/Fragment_A(27457): onAttachI/Fragment_A(27457): onCreateI/Fragment_A(27457): onCreateViewI/Fragment_A(27457): onActivityCreatedI/Fragment_A(27457): onStartI/Fragment_A(27457): onStartI/Fragment_A(27457): onResume : isHiden =falseI/Fragment_A(27457): onResume : isHiden =false
也就是不会调用 onHiddenChanged
3.如果添加完成然后再两个Fragment交替show 和 hide ,那么只会调用 onHiddenChanged, 其中返回其是否显示的状态
I/Fragment_A(27457): onHiddenChanged : trueI/Fragment_A(27457): onHiddenChanged : falseI/Fragment_A(27457): onHiddenChanged : trueI/Fragment_A(27457): onHiddenChanged : false
4.其销毁过程
I/Fragment_A(27457): onPauseI/Fragment_A(27457): onPauseI/Fragment_A(27457): onStopI/Fragment_A(27457): onStop I/Fragment_A(27457): onDestroyViewI/Fragment_A(27457): onDestroyI/Fragment_A(27457): onDetachI/Fragment_A(27457): onDestroyViewI/Fragment_A(27457): onDestroyI/Fragment_A(27457): onDetach
ps: 在销毁过程中, 交替指向 onPasue 和 onStop , 然后 一个一个执行 onDestroyView 到 onDetach 过程
了解Fragment 的add / show / hide 使用的生命周期后, 就可以准确的利用生命周期对业务逻辑进行处理了...
0 0
- Fragment 使用add 和 hide 生命周期
- Fragment 使用add 和 hide 生命周期
- Fragment 使用hide和show,使用onHiddenChanged代替执行生命周期
- Fragment 使用hide和show,使用onHiddenChanged代替执行生命周期
- Fragment的show,add,hide使用
- Fragment生命周期及add、replace、remove、hide&show方法分析
- Fragment的生命周期,以及fragment用hide和show,以及放在Viewpager中的使用
- fragment hide/show 生命周期
- 一道面试题:两个Fragment在replace/add 和 hide/show不同情况下来回跳转生命周期的变化
- Fragment点击按钮替换界面防止重新实例化,使用hide和add
- Fragment add hide show方式
- Fragment show和hide
- Fragment切换 保存状态(add show hide)
- Fragment add、show、hide、replace、remove、
- Fragment生命周期和使用小结
- FragmentTransition replace add show hide方法的使用和差异
- 为什么fragment使用hide()和show()而不使用replace()
- fragment 调用hide方法时的生命周期
- eclipse上如何在手机上运行项目
- 流行浏览器的工作原理
- android intentservice
- PHP没有多继承的特性
- android 日期的加减
- Fragment 使用add 和 hide 生命周期
- 多线程中使用信号机制 pthread_sigmask()
- iOS 通用代理的写法 一个代理添加多个执行函数
- ubuntu开机出现错误“Error found when loading /root/.profile”解决
- 带键盘的inputAccessoryView属性,可以做退出键盘操作等等
- iOS开发短信分享时标题和取消按钮消失
- 最近获得的奖励
- jquery 10分钟 倒计时
- 深刻的理解Fragment生命周期 都在做什么,fragment生命周期