关于fragment响应回退键的处理与fragment的删除
2015-10-07 20:41
344 查看
今天coding过程中发现需要使fragment响应回退键的操作,首先要了解的是,fragment入栈是作为一个FragmentTransation来实现的,基本的代码如下:
(在某个Fragment中加入新的fragment)
(在某个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。
相关文章推荐
- wma tag 批量修改[原代码-从wmfsdk中修改]
- 网站被黑后的处理方法及批量删除恶意代码
- 再谈反向链接,又学了东西
- 大家要经常更新内容啊-针对百度的原创收录速度测试
- jsp 定制标签(Custom Tag)
- DEDECMS TAG伪静态 IIS_rewrite配置方法附rewrite下载
- 个人经验总结:网站被百度“拔毛”如何恢复?
- Android Fragment 基本了解(图文介绍)
- JSP自定义分页标签TAG全过程
- 网站优化细节之服务器的选择真没见过
- jQuery实现tag便签去重效果的方法
- 3种高效的Tags标签系统数据库设计方案分享
- Javascript让DEDECMS告别手写Tag
- Android Fragment的使用方法(翻译)
- Android基础之使用Fragment适应不同屏幕和分辨率(分享)
- Android中给fragment写入参数的轻量开发包FragmentArgs简介
- Android Fragment中使用SurfaceView切换时闪一下黑屏的解决办法
- Fragment里添加ListView不要用ListFragment
- 详解Android开发中Fragment的使用
- Android中fragment嵌套fragment问题解决方法