Android学习笔记九.fragment(一)


转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空)
    Fragment是Android3.0引入的新API,可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块。 可以把Fragment设计成可以在多个Activity中复用的模块,当开发的应用程序同时适用于平板电脑和手机时,可以利用Fragment实现灵活的布局,改善用户体验。
一、Fragment的特征
1.Fragment总是作为Activity界面的组成部分。Fragment可调用getActvity()方法获取它所在的Activity,Activity可调用FragmentManager的findFragmentById()或findFragmentByTag()方法来获取Fragment。其中,fragment的id或tag在其布局文件<fragment../>元素中定义。
2.在Activity运行过程中,可调用FragmentManager的add()、remove()、replace()、方法动态地添加、删除或替换Fragment。
3.一个Activity可以同时组合多个Fragment;反过来,一个Fragment也可能被多个Activity复用;
4.Fragment可以响应自己的输入事件、并拥有自己的声明周期,但它们的生命周期直接被其他所属的Activity的生命周期控制。
二、Fragment的生命周期
    因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动;如果Activity被销毁,那么它其中的所有Fragment都会被销毁。但是,当Activity在活动状态,可以独立控制Fragment的状态,比如加上或者移除Fragment。当这样进行fragment transaction(转换)的时候,可以把fragment放入Activity的back stack中,这样用户就可以进行返回操作。
1.Fragment的几个状态
(1)活动状态:当前Fragment位于前台,用户可见、可以获得焦点;
(2)暂停状态:其他Acitvity位于前台,该Fragment依然可见,只是不能获得焦点;
(3)停止状态:该Fragment不可见,失去焦点
(4)销毁状态:该fragment被完全删除,或者Fragment所在的Activity被结束
2.与Fragment有关的方法
    如最常见的就是onCreateView()方法,其作用是返回一个View对象将Fragment显示出来。
三、Fragment所需的库
    使用Fragment时,需要继承Fragment或者Fragment的子类(DialogFragment, ListFragment, PreferenceFragment, WebViewFragment),所以Fragment的代码看起来和Activity的类似。由于Fragment是Android 3.0及以上系统特有的API,如果我们需要开发低版本的应用软件,则需要引入Fragment所支持的库。
    Support Library是一个提供了API库函数的JAR文件,这样就可以在旧版本的Android上使用一些新版本的APIs.比如android-support-v4.jar.它的完整路径是:
                <sdk>/extras/android/support/v4/android-support-v4.jar它就提供了Fragment的APIs,使得在Android 1.6 (API level 4)以上的系统都可以使用Fragment。使用该支持库需要分两步:
1.添加支持库到工程项目中
    将上述的包拷入libs项目下的libs文件夹,然后在项目的Properties中添加:右键单击项目,选Properties,左边选Java Build Path,然后Add External JARs…,添加android-support-v4.jar.

2.导入Fragment、FragmentManager到工程中
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
注意,当创建包含Fragment的Activity时,如果用的是Support Library,那么继承的就应该是FragmentActivity而不是Activity.
四、Fragment核心剖析
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值