最近的项目中使用了Fragment,通过参考文档和网上相关文章,对Fragment的一些总结如下:
Android Fragment API兼容Android 1.6到3.0之间的版本,使用Fragment API可以很好的解决Android分辨率众多的问题,Fragment由于是Android Honeycomb的新特性,如果向下兼容必须发布相应的静态库,使其支持。而官方文档中TabActivity已被标记为deprecated,建议使用Fragment代替。
首先附上两个相关案例:
Fragment有自己的生命周期,接收自己的输入事件,你可以添加或移除从运行中的activity。 一个Fragment必须总是嵌入在一个Activity中,同时Fragment的生命周期受Activity而影响,举个例子吧,当Activity暂停,那么所有在这个Activity的Fragments将被destroy释放。然而当一个Activity在运行比如resume时,你可以单独的操控每个Fragment,比如添加或删除。
Fragment的生命周期如下图所示:
onCreate()
当创建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时有用处.
具体的使用方法请参考官方文档。