Fragment 是android 3.0引入的新API,是作为Activity的子模块,必须嵌入Activity才能使用。

Activity 与 Fragment的关系:

一、依附性:

1. Fragment 必须依附于Activity 。

2.Activity 内可以包含多个Fragment,Fragment也可被多个Activity复用。

3.Activity 暂停/销毁则其内的所有Fragment都暂停/销毁 (依附性)。

4.Fragment可以响应自己的输入事件,并拥有自己的生命周期,但受其依附的Activity影响。

5.Fragment 可调用getActivity()获得所在的Activity

6.Activity 可调用FragmentManager的add()、remove()、replace()方法动态的添加、移除、替换Fragment。

二、创建Fragment:

  1、继承Fragment或其子类。

  2、重写相关回调方法。

  3、掌握Fragment的生命周期,实现业务需求。

  4、添加Fragment(XML布局中添加Fragment 或动态加载):

    动态加载的方法:

      撰写代码将fragment添加到一个已存在的ViewGroup. 当activity运行的任何时候,

      都可以将fragment添加到activity layout.只需简单的指定一个需要放置fragment的ViewGroup.

      为了在你的 activity中操作fragment事务(例如添加,移除,或代替一个fragment),

      必须使用来自FragmentTransaction 的API.

       可以按如下方法,从你的Activity取得一个 FragmentTransaction 的实例:

1 FragmentManager fragmentManager =getFragmentManager();
2 FragmentTransaction fragmentTransaction =fragmentManager.beginTransaction();

      然后你可以使用 add() 方法添加一个fragment,

       指定要添加的fragment和要插入的view.

1 ExampleFragment fragment = newExampleFragment();
2 fragmentTransaction.add(R.id.fragment_container,fragment);
3 fragmentTransaction.commit();

       add()的第一个参数是fragment要放入的ViewGroup,

       由resource ID指定,第二个参数是需要添加的fragment.

       一旦用FragmentTransaction做了改变,为了使改变生效,必须调用commit().

  生命周期图:

    

三、实践心得:

  1. 重写回调函数时, 某些回调函数需要调用父类的回调函数。如:

            public void onDetach() {
                  super.onDetach();
                  Log.i("tag", "called onDetach...");
            }

          需要调用父类的回调函数,完成相关的操作,否则出错!

  2. Fragment与Activity需要通讯时,可在 fragment中定义一个回调的interface,

    并要求宿主activity实现它.当activity通过interface接收到一个回调,

   
必要时它可以和在layout中的其他fragment分享信息.

  

android Fragment 用法小结的更多相关文章

  1. Android Fragment用法知识点的讲解

    Android Fragment用法的讲解 碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示.Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了 ...

  2. Android Fragment用法详解(2)--动态添加Fragment

    在上一篇文章<Android Fragment用法详解(1)--静态使用Fragment>我们讲解了Fragment的最简单的用法.这次我们来说一说Fragment复杂一丢丢的用法.在代码 ...

  3. Android ViewPager用法小结

    android-support-v4.jar 是谷歌提供给我们的一个兼容低版本号安卓设备的软件包.里面包囊了仅仅有在 Android 3.0 以上可用的API.而 ViewPager 就是当中之中的一 ...

  4. Android Fragment用法详解(1)--静态使用Fragment

    先说明一下,本例子是运行在Android Studio下面的.同样的代码复制粘贴到Eclipse运行却会报错.具体原因我也没有细查.知道的哥们,留言通知下呗. Fragment,也就是碎片,本意是为了 ...

  5. android Fragment用法

    Fragment常用的三个类:android.app.Fragment 主要用于定义Fragmentandroid.app.FragmentManager 主要用于在Activity中操作Fragme ...

  6. Android Fragment用法之给Activity创建事件回调

    在某些案例中,可能需要Fragment与Activity共享事件.在Fragment内部定义一个回调接口是一个好方法,并且规定由持有它的Activity实现这个回调方法.当Activity通过接口接受 ...

  7. (转)android webview用法小结

    原文地址:http://blog.csdn.net/ethan_xue/article/details/7841431 将webview里常用的东西拿出来分享下 想要webview加载页面,只需web ...

  8. Android Fragment使用小结及介绍

    目录(?)[-] 一什么是Fragment 二Fragment的生命周期 三Fragment的两种添加方式addreplace 四两种添加方式性能比较 偶记得第一次接触Fragment,觉得好牛叉的组 ...

  9. Android Fragment和FragmentActivity区别和用法

    Android Fragment是Android4.0以上才有的:而FragmentActivity是为了兼容4.0以下版本的Fragment使用的. 所以如果你想兼容4.0以下Android版本使用 ...

随机推荐

  1. AlloyRenderingEngine

    AlloyRenderingEngine燃烧的进度条 写在前面 Github: https://github.com/AlloyTeam/AlloyGameEngine HTML 5新增了progre ...

  2. oracle_powerdesinger逆向工程 , PDM 文件 注释到name的完美解决方案 comment2name

    1. 从oracle 到 PDM文件  逆向工程中 ,需要注意 去掉“” ,这个百度下很多帖子,用于去掉引号 2. 从注释copy到name运行脚本会有个问题就是 ,有些注释太长,不美观 解决方案, ...

  3. elasticsearch的rest搜索--- 总述

    目录: 一.针对这次装B 的解释 二.下载,安装插件elasticsearch-1.7.0   三.索引的mapping 四. 查询 五.对于相关度的大牛的文档 一.针对这次装B 的解释  因为现在又 ...

  4. C和指针 (pointers on C)——第一章:高速启动

    大多数人并不认为有几类人猿学校计划非常赞同C学习好,然后看多本书. 仅仅作为读书笔记写.有时还包括一些题目和答案. 这样的公开栏,这两种玉引砖敲,对于自勉,鼓励王! 第一章:手 我每次都是复习的来写. ...

  5. 【转】UIAutomator定位Android控件的方法实践和建议(Appium姊妹篇)

    原文地址:http://blog.csdn.net/zhubaitian/article/details/39777951 在本人之前的一篇文章<<Appium基于安卓的各种FindEle ...

  6. 详细的图文介绍如何利用XAMPP本地建站的环境配置教程

    原文:详细的图文介绍如何利用XAMPP本地建站的环境配置教程 WordPress 是一个简便快捷,用途广,人气旺的一个开源的博客建站程序.很有很多等您去发现. 简便快捷:在性能上易于操作.易于浏览: ...

  7. Fileupload-1.2.1使用简单样例

    在測试本例至少须要在web程序的WEB-INF/lib下包括commons-fileupload- 1.2.1和commons-io-1.3.2两个类库. fileupload.jsp <%@ ...

  8. Model Validation in Asp.net MVC

    原文:Model Validation in Asp.net MVC 本文用于记录Pro ASP.NET MVC 3 Framework中阐述的数据验证的方式. 先说服务器端的吧.最简单的一种方式自然 ...

  9. mvc之验证IEnumerable<T> 类型,多选框验证

    原文:mvc之验证IEnumerable<T> 类型,多选框验证 假设我们有这么一种需求,我们要同时添加年级和年级下面的多个班级,我们一般会像下面这种做法. Action中我们这样接收: ...

  10. unity3d 血液

    这里的人物头像和血条是在3d世界生成的,所以有真正的纵深感和遮挡关系,废话不多说,看我是怎么实现的. 第一步.先在UI Root里制作头像和血条. 这个制作步骤基本和我前面一篇文章介绍头像血条的制作步 ...