ANDROID FRAGMENT来回切换不刷新不销毁的最佳方法

各位朋友大家好,今天给大家说下关于ANDROID FRAGMENT来回切换不刷新不销毁的最佳方法,因为前一段时间有很多朋友问我,于是我就准备写下这篇文章来统一告诉大家吧!

90%以上的App都会用到Fragment、那么切换Fragment就很常见了、一般情况下我们在项目中需要进行Fragment的切换、一直都是用replace()方法来替换Fragment、比如入下代码:

public void switchContent(Fragment fragment) {
if(mContent != fragment) {
mContent = fragment;
mFragmentMan.beginTransaction()
.setCustomAnimations(android.R.anim.fade_in, R.anim.slide_out)
.replace(R.id.content_frame, fragment) // 替换Fragment,实现切换
.commit();
}
}

但是、这样会有一个问题、每次切换的时候、Fragment都会重新实例化、重新执行onCreateView()方法、重新加载一边数据、这样非常消耗性能和用户的数据流量、所以就在想、如何让多个Fragment彼此切换时不重新实例化? 翻看了Android官方Doc、和一些组件的源代码、发现replace()这个方法只是在上一个Fragment不再需要时采用的简便方法、正确的切换方式是add()、切换时hide()、add()另一个Fragment、再次切换时、只需hide()当前、show()另一个、这样就能做到多个Fragment切换不重新实例化、代码如下:

public void switchContent(Fragment from, Fragment to) {
if (mContent != to) {
mContent = to;
FragmentTransaction transaction = mFragmentMan.beginTransaction().setCustomAnimations(
android.R.anim.fade_in, R.anim.slide_out);
if (!to.isAdded()) { // 先判断是否被add过
transaction.hide(from).add(R.id.content_frame, to).commit(); // 隐藏当前的fragment,add下一个到Activity中
} else {
transaction.hide(from).show(to).commit(); // 隐藏当前的fragment,显示下一个
}
}
}

使用上面的方法就能避免Fragment在切换的时候再次调用onCreateView()的问题,希望可以帮到你,如果第一次不行可以在多尝试几遍看看是不是你那边弄错了,一般情况下都不会有问题的哈,下面是辅助资料,有兴趣的朋友可以看看了解下!

Fragment来回切换时不销毁的实现方法分享

Fragment是现在app上面99%都会用的东西,特别是像QQ一样的底部导航栏,或者TabLayout和ViewPage的结合,都会用到。 而我之前一直用来切换Fragment用的是replace方法,这样就导致每次切换fragment的时候都会重新加载界面,这样不但会消耗资源,而且用户体验也不好,所以最近就找了网上的资料,学习了Add方法,这个方法和replace方法最大的区别就是: replace方法是当前的界面不需要的时候去替换掉,而add方法是不会移除当前的fragment,结合hide和show方法来切换。 进入正题:首先先判断当前的fragment是否存在,不存在就new,然后在把当前的fragme添加到事务中,然后在隐藏所有的fragment,最后在显示当前的fragment: ANDROID FRAGMENT来回切换不刷新不销毁的最佳方法

ANDROID FRAGMENT来回切换不刷新不销毁的最佳方法 这样每当切换一个fragment的时候都会先隐藏所有的,然后在显示当前的,而不是像之前那样去销毁一个然后在重新创建,这样就不会每次切换就重新加载布局了。 不过还有一点一定需要注意:

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

这个事务一定要每次都重新开启一个,不然都用一个会报commit already called这个错误。这个需要切记哦!

本文来自用户:管理员的投稿,不代表寂寞网立场,转载请注明出处:https://www.jimowang.com/p/4219.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 jimowangmail@126.com 举报,一经查实,本站将立刻删除。

(12)
上一篇 2022年6月14日 19:22
下一篇 2022年6月14日 22:13

相关推荐

  • 宝塔+谷歌网盘 免费实时备份网站数据【秒懂干货】

    最近比较忙,今天沈亚骏又抽时间给大家带来了宝塔+谷歌网盘 免费实时备份网站数据干货,以及网站备份宝塔,备份,网站的一系列相关干货,其他的废话在这里我也不说了,我们直接来进入正题吧! 推荐这套宝塔+谷歌网盘 免费实时备份网站数据方法,可以免费,实时的备份网站数据。避免服务器出问题造成数据丢失,建议各位开启自动备份。 国内推荐宝塔+七牛或宝塔+百度的备份方法,不…

    2022年11月16日
  • 2019最新广告法严禁使用词汇及违禁用语【一看就会】

    哈喽,小伙伴们大家好,今天何晓说的这篇文章2019最新广告法严禁使用词汇及违禁用语,还有关于广告法品牌,词语,国家这些的相关干货文章,经过我各种整理总结之后,决定写下这篇文章分享给大家。 绝对化词语 严禁使用绝对值、绝对、大牌、精确、超赚、创领品牌、领先上市、巨星、著名、奢侈、世界全国x大品牌之一等无法考证的词语。 严禁使用第一、极致、顶级、终极、冠军、一流…

    技术 2022年9月29日
  • 五毒之首的特点和危害(介绍和分析)

    五毒之首的特点和危害(介绍和分析) 五毒之首 在众多毒物中,有一种被称为“五毒之首”的毒物,它是最致命、最具威胁性的存在。这种毒物对人体造成的危害极大,具有独特的特点。 特点 首先,五毒之首具有高度的毒性。即使是微量的接触,也能对人体造成严重的伤害甚至导致死亡。这种毒物的毒性超过了其他任何毒物,是常见毒物中最为危险的存在。 其次,五毒之首具有迅速的攻击性。一…

    2023年8月18日
  • 男士穿搭app的评价和用户口碑分析(男士穿搭app用户评价和口碑分析)

    男士穿搭app的评价和用户口碑分析 随着智能手机的普及,越来越多的男士开始使用男士穿搭app来打造自己的时尚风格。但是,这些app的使用体验和效果究竟如何呢?本文将通过对用户评价和口碑的分析,来了解男士穿搭app的市场状况和优劣。 1. 用户评价分析。 通过收集和分析多个男士穿搭app的用户评价,我们发现用户对不同app的评价存在较大差异。其中,一些app获…

    技术 2023年9月19日
  • 穿蓝色牛仔裤怎么搭配上衣才不会土?(蓝色牛仔裤搭配上衣避免土气技巧)

    穿蓝色牛仔裤搭配上衣避免土气技巧 蓝色牛仔裤是时尚界永恒的经典单品,搭配不同的上衣可以营造出不同的风格。但是,如果不注意搭配,就很容易显得土气。以下是一些技巧,帮助你避免蓝色牛仔裤搭配上衣土气。 1. 选择合适的上衣颜色:与蓝色牛仔裤搭配的上衣颜色非常重要。避免使用与蓝色过于相似的颜色,例如棕色或卡其色。相反,选择对比强烈的或互补的颜色,例如白色、黑色、红色…

    技术 2023年9月20日
  • 国内最好的视频播放器的未来发展和趋势分析

    随着互联网技术的不断发展和普及,视频播放器已经成为人们日常生活中必不可少的工具。而在未来的发展中,视频播放器将会呈现出哪些趋势和变化?本文将从多个方面分析国内最好的视频播放器的未来发展和趋势。 一、高清视频播放 随着网络带宽的不断增加和电脑性能的不断提升,高清视频已经成为了主流。因此,视频播放器未来的发展趋势将会是支持更高清晰度的视频播放,以满足用户对高清画…

    技术 2023年8月22日