Fragment知识点全解析(一)

本文介绍了Android中的Fragment,它的引入背景、使用注意事项、生命周期以及入门实例解析,特别是FragmentTransaction的操作方法,如add、remove、replace、hide、show等。通过对Fragment的了解,有助于在不同设备上实现灵活的界面布局。
摘要由CSDN通过智能技术生成

什么是Fragment?

Fragment是在Android 3.0之后被引入的,为了跨分辨率的问题,词如其名,即通过管理分块(碎片)Fragment,更灵活地布局,能在手机、TV、平板上实现一套代码,多种样式的需求。Fragment的名词定义也是碎片、片段的意思。

Fragment可以写成可重用的模块,因为它有自己的layout,自己的响应事件,几乎与activity完全相同。从模块化角度去思考,activity是一个APP模块化不同界面的载体,而Fragment也是activity再模块化的一个体现。可以实现界面的重用,布局的灵活切换。对于不同的业务起到良好的扩展,也有利于性能的提升(因为不用一次性加载所有布局,虽然他们会设置GONE或VISIBLE,但是还是要被绘制出来的呀~)。

使用之前,你需要知道

首先需要注意,Fragment是在3.0版本引入的,如果你使用的是3.0之前的系统,需要先导入android-support-v4的jar包才能使用Fragment功能。android.support.v4.app.Fragment:可以兼容到1.6的版本。

关于这两个fragment使用标签的问题

(1)app.fragment和v4.fragment都是可以使用< fragment >标签的

只是在使用的时候,如果是app.fragment则没有什么特殊的地方,这个Activity继承Activity即可。

(2)当v4.fragment使用< fragment >标签的时候就要特别注意了:

当这个Activity的布局中有< fragment >标签的时候,这个Activity必须继承FragmentActivity。

(3)app包中关于Fragment的类和方法在V4包中都是有对应的。

getFragmentManager()和getSupportFragmentManager()区别

当api>=14时,使用getFragmentManager(),有时候使用Fragment的时候为了兼容低版本,
会引入Android-support-v4.jar支持包,这个时候,需要使用getSupportFragmentManager()。

Fragment生命周期

先附上一幅图,供君赏阅~

Fragment生命周期

图上显示的是activity与fragment生命周期的关系,对activity的某个生命周期方法的调用也会产生对fragment相同方法的调用。

fragment比activity多的几个方法是为了与activity交互而设立的。如下:

onAttach()

当fragment被加入到activity时调用(在这个方法中可以获得所在的activity)。

onCreateView()

当activity要得到fragment的layout时,调用此方法,fragment在其中创建自己的layout(界面)。

onActivityCreated()

当activity的onCreated()方法返回后调用此方法。

onDestroyView()

当fragment的layout被销毁时被调用。

onDetach()

当fragment被从activity中删掉时被调用。

一旦activity进入resumed状态(也就是running状态),你就可以自由地添加和删除fragment了。因此,只有当activity在resumed状态时,fragment的生命周期才能独立的运转,其它时候是依赖于activity的生命周期变化的。

同样类似于activity,你可以把fragment的状态保存在一个Bundle中,在activity被recreated时就需用到这个东西。你可以在onSaveInstanceState()方法中保存状态并在onCreate()或onCreateView()或onActivityCreated()中恢复,关于更多的保存状态的信息,请参考Activity章节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值