android学习手记第二章--Fragment 16 Mar,2011

来源:互联网 发布:linux查看内存占用情况 编辑:程序博客网 时间:2024/05/21 09:07

Fragment可以理解成一个动作或者理解成在activity里面用户接口的一部分。在一个activity里面你可以加入多个fragment,或者在多个activity里面重复利用一个fragment。或者你直接把它理解成activity里的一个固化模块,拥有自己的生命周期,在activity运行的时候它还能接受输入,增加移除等等。

根据上面的描述,不难得到这样的理解,fragment必须是嵌套在activity里面的一个固化模块,当一个activity正在运行的时候,也就是处于onResume状态的时候,你可以操纵任何一个fragment,这个fragment的生命周期直接归属于activity的生命周期,你操作的每一个fragment都可以理解成一个activity,不在运行的直接放到back stack里面,然后用户可以使用back键调出来。

当你在你的activity布局里面增加一个fragment的时候,它将会出现在你的Viewgroup里面。你也可以在你的布局文件里面增加<fragment>元素来声明你的fragment,你可以把它当成隐身工人。下面我们将重点描述一下如何你在你的应用程序里面使用fragment,包括看看它是如何在activityback stack后面工作。

 

 

2.1 设计哲学

Fragmentandroid 3.0推出的蜂窝API,只要是为了使得程序界面可以自动适应不同屏幕大小的设备,例如平板电脑等。

干,csdn不让我传图片

 

这个图片最明白的说明了fragment如果适应不同的屏幕尺寸,不解释了。

一句话,你可以设计一个fragment,它包含 Activity A Activity B,如果在手机运行,自动选择左边的形式,在平板电脑运行,就自动成了右边的样式,不用罗嗦了。Google的说法文档很烦人。

 

2.2 创建一个fragment

创建一个fragment你就等于创建一个Fragment的子类或孙子类。Fragment是一个类似Acitivity代码的类。同样的也有onCreate, onStart, onPause, onStop等方法。如果你想把一个android的程序嵌在你的fragment里面,只需要简单的使用activitycallback方法就ok了。

通常你需要使用以下办法来实现fragment的生命周期

onCreate(): 在这里初始化所有必须的组件;

onCreateView(): 如果你想提供用户UI,你必须返回一个View,否则,返回null

onPause():

 

这三个是最基本的callback方法,当然还有其它方法,其它的我们以后再讨论。

 

Fragment还有几个子类:DialogFragmentListfragmentPreferenceFragment,不赘述了,以后再讨论。

2.2.1 增加一个用户界面

一个fragment经常被用来设计activity的界面