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。
- Fragment系列知识一之概述
- Fragment系列之----基础知识(一)
- Fragment(一)概述
- JavaEE知识整理系列(一)JavaEE概述
- JavaEE知识整理系列(一)JavaEE概述 .
- Fragment系列(一)
- Android Fragment详解(一):概述
- Android Fragment详解(一):概述
- Android Fragment详解(一):概述
- Android Fragment详解(一):概述
- Android Fragment详解(一):概述
- Android Fragment详解(一):概述
- Android Fragment详解(一):概述
- Android Fragment详解(一):概述
- Android Fragment详解(一):概述
- UML概述-系列一
- Android系列之Fragment
- linux内核进程系列之进程概述(一)
- Ruby rails 页面跳转(render和redirect_to)
- Linux常用命令
- apache+passenger 实现rails应用的部署
- 大端法、小端法、网络字节序
- 软件工程之测试
- Fragment系列知识一之概述
- zju2001
- poj1276Cash Machine(多重背包)
- ubuntu12.04LTS 增加 root用户的方法
- 计算机数字系统简述(Introduction to Computer Digit System)
- Python: import Module and Class
- Topcoder SRM 598 DIV 1
- C++ vector容器基本操作小练
- Sample 3.14:typecast.cpp