安卓中用show()和hide()方法来代替转跳fragment的replace()方法
来源:互联网 发布:管理决策软件 编辑:程序博客网 时间:2024/04/28 08:18
用show()和hide()方法来代替转跳fragment的replace()方法,来“保存”上一个fragment的位置
开始学习fragment的时候基本上都是使用如下代码来实现
public void changerButton(Fragment fragment,String s){ FragmentManager aa=getSupportFragmentManager(); FragmentTransaction bb= aa.beginTransaction(); bb.replace(R.id.fragment,fragment,s); bb.commit(); }
初学的时候基本上都是使用到了replace方法,但是在目前已经很成熟的开发中,却很少使用replace方法(),为什么呢,因为比如说你在某个新闻客户端,看新闻的时候,一不小心手滑点到了旁边的视频按钮。因为刚才的新闻很有趣,然后你有点回新闻按钮,但是这时候如果你是使用的是replace()方法的话,你在从视频的fragment界面转跳会新闻的fragment界面的时候,并不会回到你上次阅读的地方。那这样就很操蛋啊,刚才那条新闻好不容易找到的,在会去找么??!!。这个就是使用replace()方法的缺点。
这时候咱们来使用另一种转跳fragment界面的方法,说是转跳不如说是显示更加贴切一点。代码如下
public void changedfragment(int j) { FragmentTransaction beginTransaction = getSupportFragmentManager().beginTransaction(); for (int i = 0; i < fragment.size(); i++) { Fragment f = this.fragment.get(i); if (j == i) { if (f.isAdded()) { beginTransaction.show(f); } else { beginTransaction.add(R.id.fy, f); } } else { if (f.isAdded()) { beginTransaction.hide(f); } } } beginTransaction.commit(); }
首先来解释一下这个代码。也是和replace()方法的步骤一样,首先先是获得fragment的管理器。然后在循环里面的第一个fragment参数实际上是一个集合,就是往里面添加自己想要添加的fragment界面的。然后进入第一个判断,就是判断当前的fragment界面是不是和遍历的fragment界面是同一个界面。第二个判断是为空判断,判断这个fragment是不是已经被添加了的。如果是被添加了就展示这个fragment就行,如果没有被添加,就把这个添加到事务里面。当当前被选中的界面和遍历的界面不是同一个界面的时候,用事务把这个fragment界面给隐藏起来。
通过上面的方法就能实现,当你看新闻的时候不小心其他按钮的时候,再次返回新闻还是刚刚你阅读的那个界面。
- 安卓中用show()和hide()方法来代替转跳fragment的replace()方法
- 用Fragment的Hide()与Show()来代替Fragment的Replace()。
- 使用hide和show方法来实现fragment的切换时当需要fragment重新刷新
- FragmentTransition replace add show hide方法的使用和差异
- [Android]Fragment加载替换add,show,hide,replace方法
- Fragment加载替换add,show,hide,replace方法
- Fragment加载轮换add,show,hide,replace方法
- Fragment生命周期及add、replace、remove、hide&show方法分析
- Fragment加载替换add,show,hide,replace方法
- Fragment加载替换add,show,hide,replace方法
- fragment 的repalce方法和hide和show
- Android Fragment使用hide和show方法的问题
- fragment中的replace和hide与shou方法的区别
- fragment中的replace和hide与shou方法的区别
- Fragment show hide,replace
- 安卓学习笔记---Fragmnet使用之add,show,hide,remove以及replace方法
- Fragment hide show方法后的生命周期方法调用
- Fragment hide/show 切换 走的方法onHiddenChanged(boolean hidden)
- iOS常用关键字(assign, copy,retain等)的使用与区别
- Android4.4-settings系统动画时间修改
- css知识点总结(1)
- Myeclipse、eclipse安装lombok
- ubuntu:Reading package lists... Error!
- 安卓中用show()和hide()方法来代替转跳fragment的replace()方法
- 邮件营销 |邮件订阅用户快增新招,不靠全员大促也能引流!
- server和service的启动过程
- 两地三中心
- 动态规划训练7 [Halloween Costumes ]
- 未能加载文件或程序集"Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad
- 技能雷达图
- Retrofit2 完全解析
- android 录音绘制波形