安卓漫漫路之碎片Fragment不同包下的区别.
来源:互联网 发布:ubuntu配置tomcat环境 编辑:程序博客网 时间:2024/05/29 14:53
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
- 安卓漫漫路之碎片Fragment不同包下的区别.
- 安卓Fragment 碎片!!!
- 安卓漫漫路之可移动的按钮.
- 安卓漫漫路之实现简单的弹幕.
- 安卓漫漫路之startActivityForResult的使用.
- 安卓漫漫路之缓存策略.
- 安卓开发25:碎片 Fragment使用
- 详解安卓Fragment(碎片化)
- 安卓漫漫路之WebSettings设置大全.
- 安卓漫漫路之读取本地html文件.
- 安卓漫漫路之Echarts显示k线图.
- 安卓漫漫路之AndroidManifest权限大全.
- 安卓漫漫路之AIDL传递简单数据.
- 安卓漫漫路之BitmapFactory高效加载Bitmap.
- 不同包下Fragment问题
- 【Android】安卓开发实战之使用Fragment(碎片)实现底部导航栏效果
- 安卓在一个活动(Activity)里加载碎片(Fragment)并切换到另一个碎片(Fragment)
- Fragment 碎片 (下)
- TFS 2015 敏捷开发实践 – 看板的使用
- Bluetooth---如何使用Android蓝牙开发
- 347. Top K Frequent Elements**
- 设计模式之23 - 访问者模式Visitor
- linux学习之混合编程
- 安卓漫漫路之碎片Fragment不同包下的区别.
- Swift3.0 URLSession学习笔记
- django初步学习
- 道歉信
- Jquery选择器
- HBASE教程
- Spring MVC中的二三事
- 【LeetCode】 108. Convert Sorted Array to Binary Search Tree
- Jni学习笔记(一)创建项目