安卓漫漫路之碎片Fragment不同包下的区别.

Fragment简介: (碎片)


在最初的时候,咱们如果要想显示多个布局,只能创建多个activity跳转来达到咱们想要的效果.但是Fragment控件出来之后,果然不负众望.他使一切变的美好华丽又简单,咱们可以认为Fragment就是Activity的一个界面的一个组成部分(必须依存于Activity,因此Activity的生命周期会直接影响到Fragment的生命周期).当Activity写好帧布局之后,咱们就可以创建咱们想要的Fragment布局来填充到Activity中来展示.并且可以通过控制FragmentTransaction(Fragment事务管理者,得到FragmentManager之后通过fm.beginTransaction()得到)提交不同的事务来动态的添加,替换和移除某个Fragment.达到展示多个布局的效果.
Activity的界面可以有完全不同的Fragment组成,并且Fragment拥有自己的生命周期和接收、处理用户的事件,这样就不必在Activity写一堆控件的事件处理的代码了.


Fragment有两个包:android.support.v4.app.fragment包和android.app.fragment

功能都是一样的,但是有些API是有区别的,例如: 

-----------------------------------------------------------------------------------------------------------------------

其一: 手机系统版本区别:

· android.support.v4.app.fragment包是为可以向下兼容至1.6系统.

· android.app.fragment包是3.0系统以后的才能使用的,不过这也无所谓了,随着人们对科技不断的追求,NDK研发人员不断的努力,系统会越来越高越来越好.16年10月份左右7.0都开始公测了. 

-----------------------------------------------------------------------------------------------------------------------
其二: 管理Fragment的主Activity区别:

· android.support.v4.app.fragment包下的需要继承FragmentActivity,否则(java.lang.ClassCastException)

· android.app.fragment包下的照样继承Activity

-----------------------------------------------------------------------------------------------------------------------
其三: 对FragmentManager的获取区别:

· android.support.v4.app.fragment包下需要使用getSupportFragmentManager()来获取管理,代码如下:

  FragmentManager fm = getSupportFragmentManager();

· android.app.fragment包下需要使用getFragmentManager(),如下:

  FragmentManager fm = getFragmentManager();
-----------------------------------------------------------------------------------------------------------------------
其四: 强调FragmentTrancation.commit:

简介: 熟悉数据库的同学都知道,事务指的就是一种原子性、不可拆分的操作。所谓的Fragment事务就是:对Fragment进行添加、移除、替换或执行其它动作,提交给Activity的每一个变化。这就是Fragment事务。

通过FragmentManager.beginTransaction()我们可以开始一个事务。
在事务中,我们可以对Fragment进行的操作以及对应的方法如下:
添加:add()
移除:remove()
替换:replace()
提交事务:commit()
上面几个是比较常用的,还有attach()、detach()、hide()、addToBackStack()等方法。
我们需要注意的是,Fragment以ID或Tag作为唯一标识,所以remove和replace的参数是Fragment,这个Fragment目标Fragment一致(必须是相同的包,否则会编译时异常)。

------------------------------------------------------------------------------------------------------------------------




如有问题请多指正,您的指正使我更我正确的前行.



  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值