Fragment栈和事务的介绍---基础知识(四)
来源:互联网 发布:查看交换机mac地址 编辑:程序博客网 时间:2024/05/14 07:08
一 基础知识
(1)栈:
主要作用表现为一种数据结构,是只能在某一端插入和删除的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)
二 回退事件
(一 )
Transaction事务回退的原则 (重点) 回退是以commit()提交的一次事务为单位的,而不是以其中的add,replace等等操作为单位回退的,即,如果我们在一次提交是添加了fragment2,fragment3,fragment4,那么回退时,会依据添加时的顺序,将它们一个个删除,返回到没有添加fragment4,fragment3,fragment2的状态
注意 加了addToStaskBack之前,replace一下,之前的fragment只会执行 onPaces,onStop,onDestory,只会消除视图结构,之前的Fragment的实例还在
(二) 回退栈
(1) 实现方式: 要使用回滚功能,只需要要使用下面两个代码: transaction.commit()之前,使用addToBackStack()将其添加到回退栈中。
注意:
① 如果没有加入回退栈,那么fragment会和当前的activity共同的消亡
② 弹栈,按back键,remove执行的生命周期都是一样的
(2) 代码方法 (加入回退栈方法)
① transaction.addToBackStack(String tag); // 标记本次的回滚操作
(3) 回退方法代码(弹栈方式)
① manager.popBackStack();
注意:popBackStack()是弹出默认的最上层的栈顶内容,
② void popBackStack(int id, int flags);
- void popBackStack(String name, int flags);
注意:当栈中有多层时,我们可以根据id或TAG标识来指定弹出到的操作所在层
③ 参数理解
- 参数int id是当提交变更时transaction.commit()的返回值。
- 参数string name是transaction.addToBackStack(String tag)中的tag值;
- 至于int flags有两个取值:0或FragmentManager.POP_BACK_STACK_INCLUSIVE;
- 当取值0时,表示除了参数一指定这一层之上的所有层都退出栈,指定的这一层为栈顶层;
- 当取值POP_BACK_STACK_INCLUSIVE时,表示连着参数一指定的这一层一起退出栈;
④ 使用popBackStack()来弹出栈内容的话,调用该方法后会将事物操作插入到FragmentManager的操作队列,只有当轮询到该事物时才能执行。如果想立即执行事物的话
- popBackStackImmediate()
- popBackStackImmediate(String tag)
- popBackStackImmediate(String tag, int flag)
- popBackStackImmediate(int id, int flag)
- manager.findFragmentById(); //根据ID来找到对应的Fragment实例,主要用在静态添加fragment的布局中,因为静态添加的fragment才会有ID
- manager.findFragmentByTag();//根据TAG找到对应的Fragment实例,主要用于在动态添加的fragment中,根据TAG来找到fragment实例
0 0
- Fragment栈和事务的介绍---基础知识(四)
- Fragment 事务的介绍---基础知识(三)
- Fragment 的基础知识介绍 1.1 概述
- Fragment的基础知识介绍详解必看
- Redis事务介绍(四)
- Redis 事务介绍(四)
- Android事务理解和Fragment的执行事务
- 事务和锁(四)
- Oracle基础知识(四) - 触发器的基础知识
- 关于Fragment的基础知识
- Fragment的基础知识
- Fragment的详细介绍和使用方法
- Fragment的详细介绍和使用方法
- Fragment的详细介绍和使用方法
- Fragment的详细介绍和使用方法
- Android Fragment和Activity的交互介绍
- Fragment的介绍和使用(一)
- Fragment的介绍和使用(二)
- 如何查看静态库内容 Unix/Linux
- 小记
- Struts入门(1)------之基础配置
- 【转载】linux下core文件调试方法,转载自only_eVonne的cnblogs文章
- 复制链接 与 生成二维码
- Fragment栈和事务的介绍---基础知识(四)
- 汇编指令解读
- android 自定义view之选座功能
- C程序之初识C语言程序
- 日本語:技術語彙【ぎじゅつごい】
- H5页面在手机上运行 在手机上运行web项目
- 【BZOJ 1192】[HNOI2006]鬼谷子的钱袋
- Maven的安装与配置
- css3flex布局,一图透彻解析。