在前文中讲到在Activity中如何动态添加Fragment是使用FragmentManger和FragmentTransction这两个类的,那么什么是FragmentManger和Fragment Transction?

​    ​FragmentManager,顾名思义,Fragment的管理者,通过上文,我们知道通过FragmentManager可以来如何找到fragment的实例(findViewById和fidViewByTag),它的职责是在程序运行时动态管理Fragment,包括添加、移除、显示、隐藏或者在不同Fragment之间的切换导航。为了支持到Android 3.0,我们通过调用Activity的getSupportFragmentManager方法代替getFragmentManager方法来获取FragmentManager。

​    ​FragmentTransction,顾名思义,Fragment事务,什么是事务?引用百度到的内容:(。。。不让我复制。。。)事务是一组原子操作单元,从数据库角度说,就是一组SQL指令,要么全部执行成功,要么全部撤销不执行,若因为某个原因其中一条指令执行有错误,则撤销先前执行过的所有指令(在一个事务中)。

​    ​FragmentManger通过FragmentTransction来对Fragment进行相关操作。让我们看一下FragmentManager的相关方法。


    ​    ​通过FragmentManager的beginTransction方法,就可以获取一个FragmentTransction实例,来进行fragment的管理。通过调用FragmentTransction类的add、replace、remove、hide、show、addToBackStack等方法可以对fragment进行添加、替代、移除、隐藏、显示、添加在后退栈,其他方法可以看android api。看看例子,加深印象。


那么,来讲讲add、replace、remove、hide方法的区别:

​    ​add方法就是将一个fragment实例添加到容器中,remove就是从容器移除fragment实例,而replace方法则有先调用remove方法再重新调用add方法的顺序。hide方法是将一个fragment隐藏起来,在适当的时候在通过show方法显示出来,例如我们的底部导航栏在不更新数据要保持现有的数据情况下就可以使用hide和show方法,我简易记账就是使用这种方法。每次进行相关操作之后,都要调用commit方法将事务提交。

再给一张FragmentTransction的文档照片:

本文是对前文的补充,个人能力有限,英语一般,不足之处多多指教。

长按关注哦

简易记账开发笔记之Fragment(后续)相关推荐

  1. 简易记账开发笔记之Fragment(前传)

    本文已经同步到个人公众号,欢迎关注更多 Fragment译文为碎片,理解为嵌套在Activity中可重复使用一部分,典型定义为用户界面的一部分.Fragment必须嵌套在Activity中,不可以单独 ...

  2. 简易记账开发笔记之GridLayout

    简易记账开发笔记之GridLayout 网格布局(GridLayout)是Android布局中的一种,与LinearLayout很相似,但拥有的一些独特的属性,闻名知意,网格布局就是一种类似于网格的布 ...

  3. Java开发笔记(一百零三)线程间的通信方式

    前面介绍了多线程并发之时的资源抢占情况,以及利用同步.加锁.信号量等机制解决资源冲突问题,不过这些机制只适合同一资源的共享分配,并未涉及到某件事由的前因后果.日常生活中,经常存在两个前后关联的事务,像 ...

  4. Android开发笔记(一百一十二)开发工具

    Eclipse/ADT ADT是Google在Eclipse基础上封装了Android开发工具的环境,最新版本是2014年7月2日发布的adt-bundle-windows-x86_64-201407 ...

  5. Android开发笔记(一百零一)滑出式菜单

    可移动页面MoveActivity 滑出式菜单从界面上看,像极了一个水平滚动视图HorizontalScrollView,当然也可以使用HorizontalScrollView来实现侧滑菜单.不过今天 ...

  6. ATECC508A芯片开发笔记(九):加密读写508芯片数据的流程及相应设置

    目录 ATECC508A芯片开发笔记(九):加密读写508芯片数据的流程及相应设置 1.Encrypted Read 1.1 Standard Encrypted Read Flow 1.2 Simp ...

  7. ffmpeg 找不到bin_FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/109603499 各位读者,知识无穷而人力有穷 ...

  8. [Openwrt 项目开发笔记]:Samba服务vsFTP服务(四)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 在上一节中,我们讲述了如何在路由器上挂载U盘,以 ...

  9. [置顶]       【Visual C++】游戏开发笔记之一——API函数、DirectX的关键系统...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7318264 作者:毛星云    邮箱: h ...

最新文章

  1. php数组包含对象吗,在包含数组的PHP对象上调用方法
  2. 深度解析java内存原理
  3. jupyter notebook 报错:TypeError: __init__() got an unexpected keyword argument ‘categorical_features‘
  4. Java程序员从笨鸟到菜鸟之(八十四)深入浅出Ajax
  5. 通过flask构建自己的代理池
  6. 程序员的噩梦,你遇到过哪几条?
  7. python对英语的要求_学python需要英语基础吗
  8. BIC/ImageGP稳定性问题
  9. 知识表示之五——面向对象的知识表示
  10. java知识点3(null、引用相关知识(自己理解))
  11. 软件工程师具体的工作内容是什么?
  12. Android KK NuPlayer
  13. 中国风android,小鱼天气 - 水墨古典中国风 #Android
  14. 使用思维导图的甘特图进行项目排期
  15. 955/965公司名单
  16. 深度学习(二)---算法岗面试题
  17. 性能测试结果分析报告
  18. sumo添加车辆_sumo demo 我们通过使用交通仿真软件SUMO(Simulation of 联合开发网 - pudn.com...
  19. simulink电力电子仿真(3)单相桥式全控整流电路
  20. 网络运维系列:远程服务器登录、配置与管理

热门文章

  1. 陕西活性炭需求分析_活性炭市场需求分析及发展趋势预测
  2. 工作中jQuery常用实例-主要功能总结整理
  3. 游戏服务器为什么老被攻击?被攻击了的一些常见的处理方法
  4. Android逆向分析之Xposed的hook技术
  5. 怎样在线快速缩小动图大小?怎样在线压缩gif图片?
  6. c++读取MP3文件专辑图片、歌手名等ID3v2信息
  7. java 运算符的讲解
  8. transformer--ViT
  9. html5支持.9.png,javascript-当Alpha透明时,HTML5 Canvas转换为PNG会将所有通道归零
  10. PWM(脉冲宽度调制)的工作原理、分类及其应用