关于fragment响应回退键的处理与fragment的删除
来源:互联网 发布:中国铁路发展数据 编辑:程序博客网 时间:2024/05/17 20:38
今天coding过程中发现需要使fragment响应回退键的操作,首先要了解的是,fragment入栈是作为一个FragmentTransation来实现的,基本的代码如下:
(在某个Fragment中加入新的fragment)
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();transaction.replace(R.id.container,fragmentChangePersonalInfPhoneNum,"fragmentChangePersonalInfPhoneNum");transaction.addToBackStack(null);transaction.commit();
如此,事务transaction被加入栈中,关于事务与栈的关系,看转载的另一篇博文。
当要回到这个事物执行前的状态时,需要popBackStack操作:
getActivity().getSupportFragmentManager().popBackStack();FragmentChangePersonalInfPhoneNum delete = (FragmentChangePersonalInfPhoneNum) getActivity().getSupportFragmentManager().findFragmentByTag("fragmentChangePersonalInfPhoneNum");getActivity().getSupportFragmentManager().beginTransaction().remove(delete);
如果只是popBackStack(),这个fragment并没有被删除,所以为了安全起见,最好在popBackStack()之后执行对这个fragment的删除操作,
推荐使用findFragmentByTag(String tag);来精确的获取fragment。设置tag的方法也很简单,在创建这个Fragment并作为事务执行的时候添加即可:
transaction.replace(R.id.container,fragmentChangePersonalInfPhoneNum,"fragmentChangePersonalInfPhoneNum");
中的字符串部分即是fragmentChangePersonalInfPhoneNum的tag。
0 0
- 关于fragment响应回退键的处理与fragment的删除
- 关于Fragment的一些处理
- 关于viewpager+fragment中嵌套viewpager+fragment的问题处理:
- 关于Fragment与Fragment、Activity通信的四种方式
- 关于Fragment与Fragment、Activity通信的三种方式
- 关于Fragment与Fragment、Activity通信的四种方式
- 关于Fragment与Fragment、Activity通信的五种方式
- 关于Fragment与Fragment、Activity通信的四种方式
- 关于Fragment与Fragment、Activity通信的四种方式
- 关于Fragment与Fragment、Activity通信的四种方式
- 关于Fragment 不响应onActivityResult的情况分析
- 关于Fragment 不响应onActivityResult的情况分析
- 关于Fragment 不响应onActivityResult的情况分析
- 关于Fragment 不响应onActivityResult的情况分析
- 关于Fragment 不响应onActivityResult的情况分析
- 关于Fragment 不响应onActivityResult的情况分析
- 关于Fragment 不响应onActivityResult的情况分析
- 关于Fragment 不响应onActivityResult的情况分析
- POJ 1456 Supermarket 并查集(想不到的思路)
- SpriteBuilder使用Shader Effect的另一种方法
- Android模拟器访问本地Web应用
- 动态规划算法入门
- 设计模式大全
- 关于fragment响应回退键的处理与fragment的删除
- Opencv 读取摄像头和视频数据
- UML九种图
- 换种思路去理解设计模式
- 每日三个笑话-20151007
- 用C#语言实现声音播放
- java数组输入输出
- Install Haskell on Ubuntu
- Java核心技术学习整理(一)