【Android】Fragment的生命周期

2023年5月2日 19点热度 0人点赞

fragment是android3.0时引入的api。fragment代表了Activity的子模块,因此可以把fragment理解成Activity的片段。

工具/原料

  • 编译工具:Eclipse

方法/步骤

  1. 1

    fragment的特点:

    fragment总是作为Activity界面的组成部分。fragment可以钓鱼getActivity()方法获取它所在的Activity,Activity可以调用FragmentManager的findFragmentById()或者findFragmentByTag()方法来获取Fragment。

    在Activity运行过程中,可以调用FragmentManager的add()、remove()、replace()方法动态的添加、删除或者替换Fragment。

    一个Activity可以同时组合多个Fragment;反过来一个Fragment也可被多个Activity复用。

    Fragment可以响应自己的输入事件,并拥有自己的生命周期,但它们的生命周期直接被其所属的Activity的生命周期控制。

  2. 2

    官方介绍原图

  3. 3

    最简单的创建一个Fragment只需要实现三个方法:

    onCreate(): 系统创建Fragment对象后回调该方法,实现代码只初始化想要在Fragment中保持的必要控件,当Fragment被暂停或者停止后可恢复。

    onCreateView(): 当Fragment绘制界面组件时会回调该方法。该方法必须返回一个View,该View也就是该Fragment所显示的View。

    onPause(): 当用户离开该Fragment时将会回调该方法。

  4. 4

    生命周期全程介绍图

  5. 5

    在工作中长需要把 一个Activity 改成 fragment

    从Activity到Fragment最大的变动在于,在Fragment里面的onCreate()函数内,是没有办法使用findViewById、setContentView这些函数的。因为Fragment本身并没有提供这些方法。于是我们只能通过onCreateView和onViewCreated来实现对显示的控制。

  6. 6

    而一些Fragment没有提供的属于Activity的函数我们可以通过getActivity()得到作为parent的Activity来调用,因为Fragment只是作为片段提供给Activity使用的,所以很多功能的实现都被留在了Activity里面。

    原先this的地方改为 getActivity()

    content的地方 改为 getActivity().getApplicationContext()

    这样修改Activity成 fragment 一般不会有问题。

    有可能的页面比较复杂,自己对着生命周期看看相互间有什么方法可以替代或者自己写。

    END

注意事项

  • 本步骤需要一定代码基础
  • 程序代码以代码片段的形式展示
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部

laozhao

这个人很懒,什么都没留下

文章评论