Android Fragment

Fragment 概念

Fragment 表示应用界面中可重复的一部分,Fragment 定义和管理自己的布局,具有自己的生命周期,并且可以处理自己的输入事件。fragment 不能独立存在,而是必须由 Activity 或另一个 fragment 托管。fragment 的视图层次结构会成为宿主的视图层次结构的一部分,或附加到宿主的视图层次结构。

Fragment 生命周期

  • 运行状态:当一个 Fragment 所关联的 Activity 正处于运行状态时,该 Fragment 也处于运行状态。
  • 暂停状态:当一个 Activity 进入暂停状态时(由于另一个未占满屏幕的 Activity 被添加到了栈顶),与它相关联的 Fragment 就会进入暂停状态。
  • 停止状态:当一个 Activity 进入停止状态时,与它相关联的 Fragment 就会进入停止状态,或者通过调用 FragmentTransactionremove()replace() 方法将 FragmentActivity 中移除,但在事务提交之前调用了 addToBackStack() 方法,这时的 Fragment 也会进入停止状态。总的来说,进入停止状态的 Fragment 对用户来说是完全不可见的,有可能会被系统回收。
  • 销毁状态Fragment 总是依附于 Activity 而存在,因此当 Activity 被销毁时,与它相关联的 Fragment 就会进入销毁状态。或者通过调用 FragmentTransactionremove()replace() 方法将 FragmentActivity 中移除,但在事务提交之前并没有调用 addToBackStack() 方法,这时的 Fragment 也会进入销毁状态。

Activity 中有的回调方法在 Fragmen 中基本都有,Fragment 还提供了附加的回调方法。

  • onAttach():当 FragmentActivity 建立关联时调用。
  • onCreateView():为 Fragment 创建视图(加载布局)时调用。
  • onActivityCreated():确保与 Fragment 相关联的 Activity 已经创建完毕时调用。
  • onDestroyView():当与 Fragment 关联的视图被移除时调用。
  • onDetach():当 FragmentActivity 解除关联时调用。

常见的 Fragment 生命周期变化有以下几种:

  • Fragment A 第一次被加载到屏幕上:onAttach()onCreate()onCreateView()onActivityCreated()onStart()onResume() 会依次执行。
  • Fragment AFragment B 替代,Fragment A 的变化情况:onPause()onStop()onDestroyView() 方法会得到执行,如果没有调用 addToBackStack() 方法,会进入销毁状态,onDestroy()onDetach() 方法就会得到执行。
  • 当上述情况改为在 Fragment A 没有被销毁的时按下 BACK,让 Fragment A 重新回到屏幕:onCreateView()onActivityCreated()onStart()onResume() 会依次执行。
  • 退出程序时:onPause()onStop()onDestroyView()onDestroy()onDetach() 方法会依次执行。

Android | Fragment相关推荐

  1. Android Fragment 基本介绍

    Android Fragment 基本介绍 Android Fragment 基本介绍 Fragment Android是在Android 3.0 (API level 11)开始引入Fragment ...

  2. android Fragment 学习资料推荐

    为什么80%的码农都做不了架构师?>>>    android   Fragment 学习资料推荐:android大神 郭霖 http://blog.csdn.net/guolin_ ...

  3. 【转】基于Android Fragment功能的例子

    原文网址:http://blog.csdn.net/eyu8874521/article/details/8252216 通过最近空闲时候对Fragment的学习,尝试着写了一个小Demo,将在开发的 ...

  4. [转]Android fragment 重叠问题——通过hide,show方式导致的解决方法

    [转]Android fragment 重叠问题--通过hide,show方式导致的解决方法 参考文章: (1)[转]Android fragment 重叠问题--通过hide,show方式导致的解决 ...

  5. 【转】 Android Fragment 真正的完全解析(下)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和 ...

  6. Android Fragment 真正的完全解析(下)

    本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragm ...

  7. Android Fragment嵌套导致的bug

    原文链接 Android 多个Fragment嵌套导致的三大BUG Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误 http ...

  8. Android Fragment使用(三) Activity, Fragment, WebView的状态保存和恢复

    Android中的状态保存和恢复 Android中的状态保存和恢复, 包括Activity和Fragment以及其中View的状态处理. Activity的状态除了其中的View和Fragment的状 ...

  9. Android Fragment 简单实例

    Android上的界面展示都是通过Activity实现的.Activity实在是太经常使用了.我相信大家都已经很熟悉了,这里就不再赘述. 可是Activity也有它的局限性,相同的界面在手机上显示可能 ...

  10. android 底部通知,Android Fragment实现底部通知栏

    Android Fragment实现底部通知栏,供大家参考,具体内容如下 截图如下: 1. 第一步先要创建fragment(动态注册) 然后将两个勾选取消掉(还有一种是自己手动创建) 会自动生成相对应 ...

最新文章

  1. ORACLE限制IP访问数据库
  2. VoLTE前世今生...说清楚VoIP、VoLTE、CSFB、VoWiFi、SIP、IMS那些事
  3. 数据结构C语言实现课后习题答案第6-9章
  4. kernel 3.10内核源码分析--内核栈及堆栈切换
  5. python的格式_python 代码格式
  6. php retoken,laravel 5.5 关闭token的3种实现方式
  7. 2020-06-24 电子书网站http://www.itjiaocheng.com/mianfei/
  8. SVN服务器搭建--Subversio与TortoiseSVN的配置安装(Windows)
  9. CentOS 7 搭建 L2TP/Ipsec
  10. 简单的限流保护电路图大全(六款简单的限流保护电路设计原理图详解)
  11. 原研哉:设计是什么?
  12. 程序“[4176] char.exe: 本机”已退出,返回值为 0 (0x0)
  13. python的requests爬取Uniprot中蛋白序列和N-糖基化位点
  14. 根号2计算机代码,根号 2 的程序计算方法
  15. 华为云的下一程:与中国SaaS软件开发企业一起“乘风破浪”
  16. 蓝海卓越三层漫游解决方案
  17. iOS初级开发工程师进阶之路
  18. 【EasyExcel】公司文件加密软件导致 Convert excel format exception.You can try specifying the ‘excelType‘ yourself
  19. Java实现点分十进制IP地址转换为整数
  20. RDD编程初级实践-课程论文

热门文章

  1. 时间源服务器(NTP授时服务器)应用安防监控系统
  2. java 登录过滤_Java 过滤器实现(登录) + 拦截器(两种方法)
  3. php 截图插件下载,GoFullPage插件下载
  4. DNS(Bind9) Anycast 数据中心部署 最终版
  5. 以考代评高级职称||信息系统项目管理师一贴打尽,你想知道的都在这
  6. 景鲲:百度愿开放合作 携手领袖企业共降AI门槛
  7. 如何在Java中获得Alexa排名
  8. 投资研究——中信建投证券研究报告
  9. touches,targetTouches,changedTouches
  10. java对list集合进行分页(Stream流)