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解除关联(都销毁了还有啥关联?)

  • 相关阅读:
    《A First Course in Probability》-chaper4-离散型随机变量-随机变量函数的期望
    《训练指南》——7.17
    《A First Course in Probability》-chaper4-离散型随机变量-负二项分布
    《A First Course in Probability》-chaper5-连续型随机变量-正态分布
    《University Calculus》-chaper8-无穷序列和无穷级数-比值审敛法
    Scheme实现二叉查找树及基本操作(添加、删除、并、交)
    hdu5884(多叉哈夫曼树)
    uva10857(状态压缩DP)
    hdu4055
    Controlled Tournament(状态压缩DP)
  • 原文地址:https://www.cnblogs.com/jason31/p/9521985.html
Copyright © 2011-2022 走看看