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

相关推荐

  • 1w粉丝快手号的优缺点与注意事项(快手号评测与使用建议)

    1w粉丝快手号的优缺点与注意事项 快手号评测与使用建议 拥有1万粉丝的快手号是一个相对受欢迎的社交媒体平台,具有以下优点和缺点,以及一些需要注意的事项。 优点: 1. 粉丝基础较大:拥有1万粉丝的快手号已经具备了一定的粉丝基础,可以获得更多的关注和流量。2. 传播力强:快手平台的短视频形式适合传播简短、有趣的内容,能够快速引起用户的共鸣和互动。3. 品牌宣传…

    技术 2023年8月11日
  • 网站如何投放百度联盟广告赚钱【一看就会】

    大家好,今天陈文果给大家讲解下关于网站如何投放百度联盟广告赚钱的问题,还有关于百度联盟广告赚钱广告,网站,联盟的一些干货,成功的路上不会一帆风顺,每一个成功的背后都有一个惊人的故事。 百度联盟广告投放步骤: 要放百度联盟广告赚钱,首先要制作一个网站,并且网站必须使用国内空间,必须进行网站备案才可以申请百度联盟的广告,因为百度联盟必须要有网站备案号; 网站制作…

    2022年10月2日
  • 如何在BIOS里设置安全模式(设置技巧和建议)

    如何在BIOS里设置安全模式(设置技巧和建议) 在某些情况下,您可能需要在BIOS中设置安全模式来解决计算机系统的问题。本文将介绍如何在BIOS里设置安全模式的技巧和建议,帮助您顺利完成设置。 1. 开机并进入BIOS界面 首先,重新启动计算机,并在开机过程中按下相应的快捷键进入BIOS界面。常见的快捷键包括F2、Delete、Esc等,具体取决于您的计算机…

    2023年8月26日
  • 如何避免在招聘过程中出现的问题和风险(注意事项和提醒)

    招聘过程中出现的问题和风险是每个企业都要面对的挑战。如何避免这些问题和风险,确保招聘顺利进行,是每个企业都应该重视的问题。以下是一些注意事项和提醒,希望能对您的招聘工作有所帮助。 1. 清晰的岗位描述 招聘前需要准确地描述岗位职责和要求,包括工作内容、工作时间、薪资待遇、任职要求等。这样可以吸引与岗位要求相匹配的候选人,减少后续流程中的误解和混乱。 2. 筛…

    2023年9月7日
  • 子账号设置成功后如何登录(子账号登录操作指南)

    子账号设置成功后如何登录(子账号登录操作指南) 子账号是企业管理员为企业管理成员设置的账号,在设置完成后,如何登录子账号成为企业管理成员面临的问题。本文将详细介绍子账号登录的操作步骤,帮助企业管理成员顺利登录子账号。 一、登录准备工作 在登录子账号之前,需要准备好以下物品: * 企业管理员提供的子账号邮箱和密码* 可用的网络环境和设备(如电脑、手机等) 二、…

    2023年9月8日
  • 签约仪式会场布置的费用预算与控制(签约仪式会场布置费用预算与控制技巧)

    签约仪式会场布置的费用预算与控制 签约仪式会场布置是商业活动中的一个重要环节,而费用预算与控制则是关键因素。本文将分享一些关于签约仪式会场布置费用预算与控制的技巧,帮助您掌握成本控制的方法,确保活动的顺利进行。 一、费用预算 1. 确定预算范围 在制定费用预算时,需要明确预算范围,包括哪些方面需要预算,例如会场租赁、装饰、音响、灯光、餐饮、礼品等。 2. 收…

    技术 2023年9月21日