需求场景:

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

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

  

  1. .Fragment A

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

  1. 2.Fragment B
  1. 1.Fragment A

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

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

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

实现:

入栈时,使用方法

  1. addToBackStack(nameForBackstackstate)
  2.  
  3. 传入了一个参数 name,这是个Fregment的标示,下面还要用到。

代码:

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

弹出时这么做:

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

这个方法的第二个参数

  1. POP_BACK_STACK_INCLUSIVE
  2.  
  3. 指示了这个弹出行为是 一次性出栈“指定的name的”Fragment 以上的所有 Fragment
  4.  

参考:

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

android开发(41) Fragment中使用POP_BACK_STACK_INCLUSIVE达到一次跳转到栈底。类似Activity的 采用FLAG_ACTIVITY_CLEAR_TOP的更多相关文章

  1. Android开发:碎片Fragment完全解析fragment_main.xml/activity_main.xml

    Android开发:碎片Fragment完全解析   为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,它非常类似于Activity,可以像 Activi ...

  2. EventBus框架在Android多Pane(Fragment)中的应用

    通常多pane的设计中,比如Fragment A是个Headline,Fragement B是detail,那么B通常需要实现A的点击事件的接口,这样子的话,两个fragment就高耦合了,而且需要在 ...

  3. Android 开发 之 Fragment 详解

    本文转载于 : http://blog.csdn.net/shulianghan/article/details/38064191 本博客代码地址 : -- 单一 Fragment 示例 : http ...

  4. Android开发——异步任务中Activity销毁时的问题

    0.  前言 在Android开发中经常会发生Activity的销毁重建,比如用户长时间接听一个电话后回到APP.在Android开发--Fragment知识整理(二)中我们提到了使用Fragment ...

  5. Android开发:碎片Fragment完全解析fragment_main.xml/activity_main.xml(转)

    注明:这个转的,见谅未能标明原始出处 我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述. 但是Activ ...

  6. android开发在adapter中使用反射添加元素

    android开发中最常用的控件之一就是listview,伴随listview还要有adapter和放入适配器的item.然后假设其中有一部分item的生成符合一定规律,Item item = new ...

  7. Android开发:Eclipse中SqliteManager插件使用

    通常开发Android的时候要使用到数据库操作,会遇到下面小问题: 数据库文件在哪?怎样訪问或操作? 能够通过:打开DDMS->File Explorer看到的sqlite数据库在eclipse ...

  8. [Android] 多重使用Fragment 中的onFragmentInteraction

    新建的一个Fragment,被一个Activity使用,那么这个Activity需要继承一个接口: public class MainActivity extends Activity impleme ...

  9. Android开发:fragment将事件传递回activity

    fragment触发事件后传递会给activity,可以通过在fragment中定义一个接口,让activity实现这个接口. 具体代码如下 public class AAFragment exten ...

随机推荐

  1. [转]JDBC快速入门教程

    JDBC是什么? JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据.JDBC代表Java数据库连接. JDBC库中所包含的API任务通常与数据库使用: ...

  2. libsvm_readme[zz from github]

    Libsvm is a simple, easy-to-use, and efficient software for SVM classification and regression. It so ...

  3. metaspolit 命令大全

    一.msfconsole相关命令 二.database 三.autopwn自动化攻击工具 四.metaspolit常见渗透命令大全

  4. Nginx(四):压缩功能详解

    gzip (GNU-ZIP) 是一种压缩技术.经过 gzip 压缩后页面大小可以变为原来的 30%甚至更小. 这样,用户浏览页面的时候速度会快得多.  gzip 的压缩页面需要浏览器和服务器双方都支持 ...

  5. CentOS编译安装vim

    #删除系统自带的vim rpm -qa | grep vim rpm -e vim-X11-7.4.629-5.el6_8.1.x86_64 vim-filesystem-7.4.629-5.el6_ ...

  6. sqlite第三方类库:FMDB使用

    转自:http://www.cnblogs.com/wuhenke/archive/2012/02/07/2341656.html 本文转自一位台湾ios开发者的blog,由于blog地址被墙掉,转发 ...

  7. 深入理解Linux内核-进程调度

    1.什么时候进行进程切换 调度策略目标:1.进程响应尽量快:2.后台作业吞吐量尽量高:3.尽可能避免进程饥饿:4.低优先级和高优先级进程需要尽量调和. 调度策略:决定什么时候选择什么进程运行的规则.基 ...

  8. 非常详尽的 Shiro 架构解析

    Shiro是什么? Apache Shiro是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密. Apache Shiro的首要目标是易于使用和理解.安全有时候是很复杂 ...

  9. [Windows Azure] Load Testing in Windows Azure

    The primary goal of a load test is to simulate many users accessing a web application at the same ti ...

  10. cxf 相关问题

    cxf不能将String的参数序列化的问题解决 问题: java.lang.NoSuchMethodError: org.codehaus.jettison.AbstractXMLStreamWrit ...