简单描述一下 fragment 的生命周期函数都有哪些
展开全部
fragment的特点:
fragment总是作为Activity界面的组成部分。fragment可以钓鱼getActivity()方法获取它所在的Activity,Activity可以调用FragmentManager的findFragmentById()或者findFragmentByTag()方法来获取Fragment。
在Activity运行过程中,可以调用FragmentManager的add()、remove()、replace()方法动态的添加、删除或者替换Fragment。
一个Activity可以同时组合多个Fragment;反过来一个Fragment也可被多个Activity复用。
Fragment可以响应自己的输入事件,并拥有自己的生命周期,但它们的生命周期直接被其所属的Activity的生命周期控制。
2
官方介绍原图
3
最简单的创建一个Fragment只需要实现三个方法:
onCreate(): 系统创建Fragment对象后回调该方法,实现代码只初始化想要在Fragment中保持的必要控件,当Fragment被暂停或者停止后可恢复。
onCreateView(): 当Fragment绘制界面组件时会回调该方法。该方法必须返回一个View,该View也就是该Fragment所显示的View。
onPause(): 当用户离开该Fragment时将会回调该方法。
4
生命周期全程介绍图
5
在工作中长需要把 一个Activity 改成 fragment
从Activity到Fragment最大的变动在于,在Fragment里面的onCreate()函数内,是没有办法使用findViewById、setContentView这些函数的。因为Fragment本身并没有提供这些方法。于是我们只能通过onCreateView和onViewCreated来实现对显示的控制。
6
而一些Fragment没有提供的属于Activity的函数我们可以通过getActivity()得到作为parent的Activity来调用,因为Fragment只是作为片段提供给Activity使用的,所以很多功能的实现都被留在了Activity里面。
原先this的地方改为 getActivity()
content的地方 改为 getActivity().getApplicationContext()
这样修改Activity成 fragment 一般不会有问题。
有可能的页面比较复杂,自己对着生命周期看看相互间有什么方法可以替代或者自己写。
fragment总是作为Activity界面的组成部分。fragment可以钓鱼getActivity()方法获取它所在的Activity,Activity可以调用FragmentManager的findFragmentById()或者findFragmentByTag()方法来获取Fragment。
在Activity运行过程中,可以调用FragmentManager的add()、remove()、replace()方法动态的添加、删除或者替换Fragment。
一个Activity可以同时组合多个Fragment;反过来一个Fragment也可被多个Activity复用。
Fragment可以响应自己的输入事件,并拥有自己的生命周期,但它们的生命周期直接被其所属的Activity的生命周期控制。
2
官方介绍原图
3
最简单的创建一个Fragment只需要实现三个方法:
onCreate(): 系统创建Fragment对象后回调该方法,实现代码只初始化想要在Fragment中保持的必要控件,当Fragment被暂停或者停止后可恢复。
onCreateView(): 当Fragment绘制界面组件时会回调该方法。该方法必须返回一个View,该View也就是该Fragment所显示的View。
onPause(): 当用户离开该Fragment时将会回调该方法。
4
生命周期全程介绍图
5
在工作中长需要把 一个Activity 改成 fragment
从Activity到Fragment最大的变动在于,在Fragment里面的onCreate()函数内,是没有办法使用findViewById、setContentView这些函数的。因为Fragment本身并没有提供这些方法。于是我们只能通过onCreateView和onViewCreated来实现对显示的控制。
6
而一些Fragment没有提供的属于Activity的函数我们可以通过getActivity()得到作为parent的Activity来调用,因为Fragment只是作为片段提供给Activity使用的,所以很多功能的实现都被留在了Activity里面。
原先this的地方改为 getActivity()
content的地方 改为 getActivity().getApplicationContext()
这样修改Activity成 fragment 一般不会有问题。
有可能的页面比较复杂,自己对着生命周期看看相互间有什么方法可以替代或者自己写。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询