Android Fragment简介及生命周期

1. 继承关系

    java.lang.Object

         |__android.app.Fragment


    实现接口:ComponentCallbacks2 View.OnCreateContextMenuListener


    引入版本:API Level 11


    已知的子类:


    DialogFragment、ListFragment、PreferenceFragment、WebViewFragment 如下图所示:


2. 类概要

     一个Fragment是应用程序的用户界面或行为的一个片段,它能够被放置在一个Activity中。通过FragmentManager对象来实现与Fragment对象的交互,能够通过Activity.getFragmentManager()方法和Fragment.getFragmentManager()方法来获取FragmentManager对象。

    Fragment类有着广泛的应用,它的核心是代表了一个正在较大的Activity中运行的特俗的操作或界面。Fragment对象跟它所依附的Activity对象是紧密相关的,并且不能被分开使用。尽管Fragment对象定义了它们自己的生命周期,但是这个生命周期要依赖与它所在的Activity:如果该Activity被终止,那么它内部的Fragment是不能被启动的;当Activity被销毁时,它内部的所有Fragment对象都会被销毁。


3.Fragment生命周期及与Activity的对比

  


显示Fragment时(跟用户交互)要调用的核心的生命周期方法如下:


1. 把Fragment对象跟Activity关联时,调用onAttach(Activity)方法;


2. Fragment对象的初始创建时,调用onCreate(Bundle)方法;


3. onCreateView(LayoutInflater, ViewGroup, Bundle)方法用于创建和返回跟Fragment关联的View对象;


4. onActivityCreate(Bundle)方法会告诉Fragment对象,它所依附的Activity对象已经完成了Activity.onCreate()方法的执行;


5. onStart()方法会让Fragment对象显示给用户(在包含该Fragment对象的Activity被启动后);


6. onResume()会让Fragment对象跟用户交互(在包含该Fragment对象的Activity被启恢复后)。


Fragment对象不再使用时,要反向回调的方法:


1. 因为Fragment对象所依附的Activity对象被挂起,或者在Activity中正在执行一个修改Fragment对象的操作,而导致Fragment对象不再跟用户交互时,系统会调用Fragment对象的onPause()方法;


2. 因为Fragment对象所依附的Activity对象被终止,或者再Activity中正在执行一个修改Fragment对象的操作,而导致Fragment对象不再显示给用户时,系统会调用Fragment对象的onStop()方法。


3. onDestroyView()方法用于清除跟Fragment中的View对象关联的资源;


4. Fragment对象的状态被最终清理完成之后,要调用onDestroy()方法;


5. 在Fragment对象不再跟它依附的Activity关联的时候,onDetach()方法会立即被调用


4. 老版本兼容--v4包中的Fragment

     如果想要兼容老版本,即3.0以前的Android版本,可以采用v4包中的fragment. 。android.support.v4.app.Fragment:可以兼容到1.6的版本.

     这里需要注意的是,关于这两个fragment使用<fragment>标签的问题
     (1)app.fragment和v4.fragment都能使用<fragment>标签,但如果是app.fragment则没有什么特殊的地方继承Activity即可
     (2)当v4.fragment使用<fragment>标签的时候就要特别注意了:当这个Activity的布局中有<fragment>标签的时候,

      这个Activity必须继承FragmentActivity,否则就会报错

 





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值