由于Acitivity之间的切换不是很流畅,所以大多数开发考虑在一个activity上展现多个布局,这个时候就需要模块化Activity,在需要的时候加载Fragment.

为啥要用Fragment:
首先,Fragment可以兼容手机和平板,最大减少针对不同平台的工作量。
其次,Fragment可以向下兼容(通过android官方的Support Package),在2.x平台上没有任何问题。
最重要的是,Fragment实质上是一种可以包含控制代码的视图模块,可以非常方便的进行组合。

[另外,如果大家现在去看TabActivity的官方文档,会发现此类已被标记为deprecated,建议使用Fragment代替]  

 

认识:首先我们知道Fragment是我们在单个Activity上要切换多个UI界面,显示不同内容。模块化这些UI面板以便提供给其他Acitivity使用便利。同时我们显示的Fragment也会受到当前的这个Acitivity生命周期影响。(而平常的Fragment有其自己的生命周期)

一、使用方法:


1、创建一个或者多个你需要的Fragment类,其实就是类似activity一样,也有OnCreate()等回调函数。


2、如果要让当前的程序也就是Activity使用Fragment的话,需要把Acitivity中相关的回调函数内容搬过去。you might simply move code from your activity's callback methods into the respective callback methods of your fragment

一般地,我们需要以下回调函数:

onCreate()
onCreateView()
onPause()

除了以上3个我们基本上都要用到的回调函数方法,那么我们写得Fragment中还有其他: Handling the Fragment Lifecycle

二、关于继承Fragment类


除了基本的Fragment类,我们还可以继承的有:

DialogFragment
ListFragment
PreferenceFragment

三、添加用户界面


我们再 onCreateView() 里面处理我们的Fragment要显示的界面,返回的是一个View,这个View其实就是我们定义这个Fragment的Layout的root项(最外的、最大的那个哦!)。


从XML布局中生成View我们用LayoutInflater这个助手类提供的方法。