前言
之前在讲 DialogFragment 知识的时候,对Fragment有一个大致的讲解。但由于Fragmnet作为Activity内部一个比较重要的组件,在日常构建app的时候具有重要作用。其原理,生命周期,使用方式,与activity交互等,有很多需要梳理的地方。于是这里决定对Fragment做一个整理的讲解,以帮助自己梳理下系统知识吧。
本文参考以下资料,在此表示感谢
Android Fragment 真正的完全解析
今天涉及的内容:
- Fragment的优点
- Fragment生命周期
今天讲的内容比较少,主要是为了让自己对Fragment有一个重新的认识,下面开始吧。
一. Fragment的优点
Fragment 的优点已经是老生常谈了,最初提出来的时候,是为了解决 app在平板和手机上显示的兼容性。Fragment 虽然是基于 Activity 内部使用,但是它却拥有自己的生命周期,有自己的界面,甚至可以向activity一样与用户产生交互。其拥有activity的功能的同时,却在启动销毁的时候比 activity 消耗更小的开销,这点简直棒极了。
二. Fragment生命周期
谈到 Fragment,就必须得谈谈 Fragment 的生命周期问题了,之前在写 DialogFragment 的时候,有发过一张Fragment 生命周期的图,但是在今天看关于 Fragment 的相关知识点的时候,发现了一张更好的图,它不仅讲述了Fragment自己的生命周期,还阐明了Fragment生命周期和Activity生命周期的关系。图如下:
相信看了上面这张图以后,对于Fragmnet的生命周期会理解不少。
可以大致看下Fragmnet 相对 Activity 多了以下几个方法:
//当Fragment与Activity发生关联时调用
onAttach(Activity)
//创建该Fragment的视图
onCreateView(LayoutInflater, ViewGroup,Bundle)
//当Activity的onCreate方法返回时调用
onActivityCreated(Bundle)
//与onCreateView想对应,当该Fragment的视图被移除时调用
onDestoryView()
//与onAttach相对应,当Fragment与Activity关联被取消时调用
onDetach()
ok,今天关于 Fragment 生命周期的问题,就讲到这里吧。