zoukankan      html  css  js  c++  java
  • Fragment 的生命周期

     

    Fragment的生命周期,按照正常顺序来看依次是:

    onAttach(),老式的方法是以Activity为参数,后来改成了context做参数。但是其实我实际项目中并没有重写这一方法,因为其父类方法就可以完成Activity和fragment的绑定(关联)。

    onCreate(), 在这个方法里可以初始化一些数据,这些数据在onPause(),onStop()调用之后也能保持住不被销毁。另外隐藏状态栏这种操作也可以放在这里。要注意的是这个onCreate()只调用一遍,所以如果fragment没有被销毁并重新创建的话,一些指示当前fragment以方便Activity管理的flag参数就不要在这里设置。

    onCreateView(), 如果设置了模拟返回栈,那么在onDestroyView()之后,fragment就会回到这里。这个地方主要是产生一个可以在上面画控件的layout,并返回一个view类实例。要注意的是不应该在这里画控件,可能会出错。当我把flag参数放在这里时,是可以正常工作的(也许是因为似然没有加进返回栈,但fragment都没有执行到onDestroy()那一步)。

    onActivityCreated(), 这里就比较适合初始化控件。当fragment执行到这里的时候,对应的是Activity的onCreate()刚执行完成。

    -----------------接下来几个方法和Activity中是一样的作用:---------------

    onStart(), fragment可见。

    onResume(), fragment可获取焦点(可以点击?)。如果要设置窗口(强制/感应)横屏或竖屏,代码可加在这里。

    onPause(),fragment 失去焦点但仍可见,部分遮挡(比如出现dialog时吧)。

    onStop(), fragment被完全遮挡。

    ---------------------------------------------------------------------------------------------

    onDestroyView(), layout被移除,包括控件资源。比如在使用viewPager时,因为它的缓存机制总是同时保存三个fragment,当滑动到第四个页面时,第一个页面会执行onDestroyView(),但未执行onDestroy(), 所以它会仍然与Activity保持关联。这样在重新滑动到第一页时,它会直接执行onCreateView()。

    onDestroy(), 与Activity中的一样,销毁。

    onDetach(), fragment与Activity解除关联(都销毁了还有啥关联?)

  • 相关阅读:
    CharSequence的getText()与String的getString()(转)
    android 1.6 launcher研究之自定义ViewGroup (转 2011.06.03(二)——— android 1.6 launcher研究之自定义ViewGroup )
    2.1Android界面View及ViewGroup(转)
    Android笔记:百度地图与高德地图坐标转换问题
    NDK常用命令
    深入Java单例模式(转)
    CentOS 6.2 安装vsftpd 服务器(转)
    centos 安装FTP server详情(转)
    CentOS 6.3下NTP服务安装和配置
    搭建vscode+vue环境
  • 原文地址:https://www.cnblogs.com/jason31/p/9521985.html
Copyright © 2011-2022 走看看