最近的项目中使用了Fragment,经过参考文档和网上相关文章,对Fragment的一些总结以下:git
Android Fragment API兼容Android 1.6到3.0之间的版本,使用Fragment API能够很好的解决Android分辨率众多的问题,Fragment因为是Android Honeycomb的新特性,若是向下兼容必须发布相应的静态库,使其支持。而官方文档中TabActivity已被标记为deprecated,建议使用Fragment代替。github
首先附上两个相关案例:ide
Fragment有本身的生命周期,接收本身的输入事件,你能够添加或移除从运行中的activity。 一个Fragment必须老是嵌入在一个Activity中,同时Fragment的生命周期受Activity而影响,举个例子吧,当Activity暂停,那么全部在这个Activity的Fragments将被destroy释放。然而当一个Activity在运行好比resume时,你能够单独的操控每一个Fragment,好比添加或删除。ui
Fragment的生命周期以下图所示:对象
onCreate()blog
当建立fragment时, 系统调用此方法.继承
在实现代码中, 应当初始化想要在fragment中保持的必要组件, 当fragment被暂停或者中止后能够恢复.生命周期
onCreateView()
fragment第一次绘制它的用户界面的时候, 系统会调用此方法. 为了绘制fragment的UI, 此方法必须返回一个View, 这个view是你的fragment布局的根view. 若是fragment不提供UI, 能够返回null.
onPause()
用户将要离开fragment时,系统调用这个方法做为第一个指示(然而它不老是意味着fragment将被销毁.) 在当前用户会话结束以前,一般应当在这里提交任何应该持久化的变化(由于用户有可能不会返回).
大多数应用应当为每个fragment实现至少这3个方法, 可是还有一些其余回调方法你也应当用来去处理fragment生命周期的各类阶段.所有的生命周期回调方法将会在后面章节 Handling the Fragment Lifecycle 中讨论.
除了继承基类 Fragment , 还有一些子类你可能会继承:
DialogFragment
显示一个浮动的对话框.
用这个类来建立一个对话框,是使用在Activity类的对话框工具方法以外的一个好的选择,
由于你能够将一个fragment对话框合并到activity管理的fragment back stack中, 容许用户返回到一个以前曾被摒弃的fragment.
ListFragment
显示一个由一个adapter(例如 SimpleCursorAdapter)管理的项目的列表, 相似于 ListActivity.
它提供一些方法来管理一个list view, 例如 onListItemClick() 回调来处理点击事件.
PreferenceFragment
显示一个 Preference对象的层次结构的列表, 相似于 PreferenceActivity.
这在为你的应用建立一个"设置"activity时有用处.
具体的使用方法请参考官方文档。