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这个错误。这个需要切记哦!

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

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

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

相关推荐

  • 如何在bios安全模式下修改系统设置(系统设置修改与优化技巧)

    如何在BIOS安全模式下修改系统设置(系统设置修改与优化技巧) 在某些情况下,我们可能需要进入计算机的BIOS安全模式来修改系统设置。BIOS是计算机启动时加载的固件,它负责初始化硬件和启动操作系统。通过进入BIOS安全模式,我们可以对系统进行一些高级设置和调整,以优化计算机性能。 步骤一:重启计算机并进入BIOS安全模式 首先,确保你的计算机处于关机状态。…

    2023年8月26日
  • 信息流是什么?百度和谷歌信息流的差别在哪里?【详细介绍】

    小伙伴们大家好,今天蒋贤鹏抽了个时间整理了一些关于信息流是什么百度和谷歌信息流的差别在哪里,还有关于信息流差别,美元,内容的一些干货,其他的废话在这里我也不说了,我们直接来进入正题吧! 几乎在同一时刻,百度和Google两大搜索巨头都对他们的搜索App进行了改版。手机百度9. 0 将导航页和底部菜单都进行了彻底调整,让整个手机百度基本变成了一个新闻客户端。而…

    2022年10月23日
  • 女性驾驶员如何修理自己的汽车?(女性驾驶员汽车维修技巧指导)

    女性驾驶员如何修理自己的汽车? 女性驾驶员在日常生活中难免会遇到汽车故障的问题,对于一些小问题,她们可以自己动手解决。以下是女性驾驶员汽车维修技巧的指导: 1. 简单零件更换:一些简单的零件更换,如灯泡、雨刷等,女性驾驶员可以自己动手更换。她们可以按照说明书的要求进行更换,或者参考网上教程进行操作。2. 检查轮胎气压:女性驾驶员需要定期检查轮胎气压,并确保轮…

    技术 2023年8月23日
  • Iconfont阿里巴巴图标使用方法【详细介绍】

    HI,小伙伴们你们好,今天秦美慧比较忙,抽个时间来说下关于Iconfont阿里巴巴图标使用方法,以及阿里巴巴图标使用方法图标,使用方法,矢量相关的问题,其他的废话在这里我也不说了,我们直接来进入正题吧! 直接上阿里巴巴图标使用教程,废话不啰嗦,Iconfont网站介绍看下面这篇介绍。 相关信息 阿里巴巴IconFont矢量字体图标库在线工具 在线工具 搞前端…

    2022年9月4日 技术
  • 如何避免在使用外链平台时出现的问题和风险(注意事项和提醒)

    在利用外链平台提升网站排名的过程中,我们需要注意一些问题和风险。合理避免这些问题和风险的出现,才能更好地利用外链平台为网站带来收益。本文将为您介绍一些注意事项和提醒,帮助您避免在使用外链平台时可能出现的问题和风险。 1.选择合规平台 在选择外链平台时,务必选择合规的平台。一些违规的外链平台可能存在恶意链接、作弊行为等问题,这不仅无法为您的网站增加价值,还会对…

    2023年9月7日
  • 如何刻录系统光盘教程分享(Win10系统光盘制作步骤)

    制作一张 Windows 系统光盘可以帮助你在必要时还原操作系统,即使没有网络,也可以轻松安装操作系统。对于那些需要对电脑进行重装的人来说,制作系统光盘是个非常不错的选择,接下来我们将会分享 Win10 系统光盘的制作步骤和方法。 步骤1:下载 Windows 10 ISO 文件 在制作 Win10 系统光盘之前,你需要先下载 ISO 文件。为此,你可以访问…

    2023年6月15日 技术