1.fragment继承关系

java.lang.Object

|__android.app.Fragment

实现接口:ComponentCallbacks2View.OnCreateContextMenuListener

引入版本:APILevel 11

已知的子类:

DialogFragment、ListFragment、PreferenceFragment、WebViewFragment


2.fragment类概要

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

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

所有的Fragment 子类都必须包含一个公共的空的构造器。在需要的时候,Framework会经常重新实例化Fragment类,在特殊的状态恢复期间,需要能够找到这个构造器来实例化Fragment类。如果空的构造器无效,那么在状态恢复期间会导致运行时异常发生。


Fragment 表现 Activity 中用UI的一个行为或者一部分. 可以组合多个fragment放在一个单独的activity中来创建一个多界面区域的UI,并可以在多个activity里重用某一个fragment.把fragment 想象成一个activity的模块化区域, 有它自己的生命周期, 接收属于它的输入事件, 并且可以在activity运行期间添加和删除.


Fragment 必须总是被嵌入到一个activity中, 它们的生命周期直接被其所属的宿主activity的生命周期影响. 例如, 当activity被暂停,那么在其中的所有fragment也被暂停; 当activity被销毁, 所有隶属于它的fragment也被销毁. 然而,当一个activity正在运行时(处于resumed状态), 我们可以独立地操作每一个fragment, 比如添加或删除它们. 当处理这样一个fragment事务时, 也可以将它添加到activity所管理的back stack -- 每一个activity中的back stack实体都是一个发生过的fragment事务的记录. back stack允许用户通过按下 BACK 按键从一个fragment事务后退(往后导航).


将一个fragment作为activity布局的一部分添加进来时, 它处在activity的view hierarchy中的ViewGroup中, 并且定义有它自己的view布局.通过在activity的布局文件中声明fragment来插入一个fragment到你的activity布局中, 或者可以写代码将它添加到一个已存在的ViewGroup.然而, fragment并不一定必须是activity布局的一部分; 也可以将一个fragment作为activity的隐藏的后台工作者.


本文档描述了如何使用fragment创建你的应用程序, 包括:当被添加到activity的back stack后, fragment如何维护他们的状态. 在activity中,与activity和其他fragment共享事件.构建到activity的action bar.以及更多内容.


3、fragment周期


4、Fragment原理

Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上--例如平板电脑上,支持更加动态和灵活的UI设计. 平板电脑的屏幕要比手机的大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互.Fragment允许这样的一种设计,而不需要你亲自来管理view hierarchy的复杂变化. 通过将activity的布局分散到fragment中, 你可以在运行时修改activity的外观, 并在由activity管理的back stack中保存那些变化.


例如, 一个新闻应用可以在屏幕左侧使用一个fragment来展示一个文章的列表, 然后在屏幕右侧使用另一个fragment来展示一篇文章 – 2个fragment并排显示在相同的一个activity中, 并且每一个fragment拥有它自己的一套生命周期回调方法,并且处理它们自己的用户输入事件. 因此, 取代 使用一个activity来选择一篇文章,而另一个activity来阅读文章 的方式, 用户可以在相同的activity中选择一篇文章并且阅读, 如图所示:
fragment在你的应用中应当是一个模块化和可重用的组件. 即,因为fragment定义了它自己的布局, 以及通过使用它自己的生命周期回调方法定义了它自己的行为, 你可以将fragment包含到多个activity中. 这点特别重要, 因为这允许你将你的用户体验适配到不同的屏幕尺寸.举个例子, 你可能会仅当在屏幕尺寸足够大时,在一个activity中包含多个fragment, 并且,当不属于这种情况时,会启动另一个单独的,使用不同fragment的activity.
继续之前那个新闻的例子 -- 当运行在一个特别大的屏幕时(例如平板电脑), app可以在Activity A中嵌入2个fragment. 然而,在一个正常尺寸的屏幕(例如手机)上,没有足够的空间同时供2个fragment用, 因此, Activity A 会仅包含文章列表的fragment, 而当用户选择一篇文章时, 它会启动Activity B, 它包含阅读文章的fragment. 因此, 应用可以同时支持图1中的2种设计模式.

5、Fragment创建


6、fragment使用

7、fragment异常

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=299336&page=1&_dsign=87d3274a

8、fragment技巧



参考:

http://blog.csdn.net/wwj_748/article/details/11224111

更多相关文章

  1. 转:android 实现 流媒体 播放远程mp3文件 代码
  2. Android(安卓)开发技巧集合
  3. android xml操作
  4. Android(安卓)6.0 关于WiFi的改变
  5. Android(安卓)关于wifi管理的代码
  6. Android之TabHost的几种使用方法
  7. Android——HashMap的替代方案
  8. Android(安卓)-- 文字设置超链接
  9. Android(安卓)Bundle类

随机推荐

  1. Android(安卓)RecyclerView.Adapter基本
  2. Android传感器之姿态传感器
  3. android代码实现布局方式-在输入框中最右
  4. Android音乐播放器之经典布局
  5. My first Android(安卓)programe!
  6. android emulator setting & configuatio
  7. Android(安卓)系统自带的图片
  8. Android(安卓)SQLiteOpenHelper
  9. Android(安卓)微信拍照控件
  10. Android流量统计代码