需求场景:

在开发中遇到下面这样场景:

1.创建 Fragment A 显示。  这时栈的结构是:

  

.Fragment A 

2.创建 Fragment B 并 显示。  从下到上看,这时栈的结构是:

2.Fragment B
1.Fragment A

3.创建 Fragment C 并 显示。  从下到上看,这时栈的结构是:

3.Fragment C
2.Fragment B
1.Fragment A

那么,如何从 Fragment C 一次性跳到 Fragment A 呢?

实现:

入栈时,使用方法

addToBackStack(nameForBackstackstate) 

传入了一个参数 name,这是个Fregment的标示,下面还要用到。

代码:

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
String name = fragment.getClass().getName();
fragmentTransaction.replace(R.id.container, fragment).addToBackStack(nameForBackstackstate).commit();

弹出时这么做:

fragmentManager.popBackStackImmediate(FragmentA.class.getName(), FragmentManager.POP_BACK_STACK_INCLUSIVE);

这个方法的第二个参数

POP_BACK_STACK_INCLUSIVE

指示了这个弹出行为是 一次性出栈“指定的name的”Fragment 以上的所有 Fragment。

参考:

http://www.cnblogs.com/qixing/p/4015262.html

最新文章

  1. asp.net获取服务端和客户端信息
  2. 【Python】自动生成html文件查看指定目录中的所有图片
  3. PHPstorm设置连接FTP,进行文件上传、下载、比较
  4. ***微信LBS地理位置开发+百度地图API(地理位置和坐标转换)
  5. MySQL服务器状态变量
  6. uva---(11549)CALCULATOR CONUNDRUM
  7. Oracle系列之异常处理
  8. python爬虫-知乎登录
  9. Mybatis接口编程原理分析(一)
  10. 新手入门vue 使用vue-cli创建项目
  11. flask处理cookie
  12. 【转】C++标准转换运算符reinterpret_cast
  13. .tar.xz文件的解压方法
  14. Asp.NET调用有道翻译API
  15. apache的rewrite机制配置
  16. Unity&C# Time时间相关
  17. js禁止img拖动
  18. android面试(4)---文件存储
  19. selenium - switch_to.frame()- 内嵌表单的切换
  20. Python switch-case语句的实现 -- 字典模拟实现

热门文章

  1. GitHub 上值得推荐的开源电子书
  2. Google Protocol Buffers介绍
  3. unity, Collider2D.bounds的一个坑
  4. node 的安装
  5. JS 在 IE9 中出现奇怪的错误(参数是必选项 argument not optional)
  6. 开始学习使用 Semantic UI
  7. [LintCode] N-Queens
  8. Subclipse和TortoiseSVN版本不一致导致升到高版本的project后,低版本svn客户端无法使用。
  9. android 通过命令行启动Apk
  10. 【React Native开发】React Native应用设备执行(Running)以及调试(Debugging)(3)