Fragment系列知识一之概述

来源:互联网 发布:centos登录名和密码 编辑:程序博客网 时间:2024/05/13 02:32

   由于项目需要最近开始学习Android编程。感觉Android就像是传统的客户端编程(如Delphi、C++等)和网站编程(J2EE、C#等)的一种结合体。既具有客户端程序友好的用户体验,又具有网站系统的便捷性。言归正传,学习UI是Android编程必不可少的一部分,Fragment又是UI中的一个重要部分。在学习Fragment过程中发现网上关于这方面的知识很多,但是很难找到系统介绍Fragment的资料。在这我将学习的Fragment知识整理一下,就算是自己的学习笔记。如有理解不对的地方还望大家指点。

 

   Android在3.0中引入了fragments的概念,支持更加动态和灵活的UI设计。本意应该是将原有Activity中的很多UI组件分块管理,Fragment在界面布局的模块化和可重用性起着重要作用。这样是为什么取名Fragment(碎片)吧。Fragment作为Activity界面组成的一部分,一个Activity中可以同时出现多个Fragment,而且一个Fragment亦可在多个Activity中使用。在Activity运行过程中,可以添加、移除或者替换Fragment(add()、remove()、replace())Fragment可以响应自己的输入事件,并且有自己的生命周期,当然,它们的生命周期直接被其所属的宿主activity的生命周期影响。如下图

对比看下他的宿主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被启恢复后)。

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

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

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

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

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

 

 

 

今天主要对Fragment做一个初步了解,下篇文章会重点介绍如何创建使用Fragment。

 

 

 

 

原创粉丝点击