(转)防止ViewPager中的Fragment被销毁的方法
在使用ViewPager与Fragment的时候,ViewPager会自动缓存1页内的数据,如下图:
当我们当前处在页面2的时候,页面1和页面3的View实际上已经创建好了,所以在我们拖动的时候是可以看见他们的界面的。
但是当我们的页面处在1的时候,页面3实际上就已经销毁了。直到跳转到页面2的时候,页面3才会创建View。
这时,如果页面3中有需要耗时的事件,比如网络访问。那么,在我们进行 1-->2 的操作的时候,就会不断的出现页面3加载的对话框(如果有的话)。而且如果快速的 1-->2-->3的切换,3中的内容很可能还没加载出来。
这样重复的加载,既影响体验、又耗费时间和流量,所以笔者这两天一直在查如何在Fragment移出的时候不要销毁,或者保存状态。
后来发现真是多此一举,如果您的软件对内存消耗不是很在意的话,只需加入以下代码:
就可以让ViewPager多缓存一个页面,这样上面的问题就得到了解决。
当然这只是个取巧的方法,如果有比较好的保存状态的方法会更好。
转载请注明来自:http://blog.csdn.net/icyfox_bupt/article/details/18356461
(转)防止ViewPager中的Fragment被销毁的方法的更多相关文章
- 防止ViewPager中的Fragment被销毁的方法,更加流畅
在使用ViewPager与Fragment的时候,ViewPager会自动缓存1页内的数据,如下图: 当我们当前处在页面2的时候,页面1和页面3的View实际上已经创建好了,所以在我们拖动的时候是可以 ...
- 防止ViewPager中的Fragment被销毁
pager.setOffscreenPageLimit(2); 就可以让ViewPager多缓存一个页面
- 友盟页面统计 - 关于Viewpager中的Fragment的生命周期
Activity和Fragment各自理论上的生命周期 Activity的生命周期是较为经典也最清晰的,在此不表: Fragment从出现到广泛运用也有一段时间了,其标准生命周期也仅比Activity ...
- 动态更新ViewPager中的Fragment(替换Fragment)
1.最近做需求,遇到一个问题,一个Fragment中包含了一个ViewPager,viewPager中包含一adapter ,adapter中包含了4个Fragment.想要动态替换第3个Fragme ...
- viewpager中对fragment的操作
XXAdatper xxAdapter = (XXAdatper)viewpager.getAdapter(); XXFragment xxFragment= (XXFragment )adapte ...
- 67、activity中调用fragment内部自定义的方法
fragment: /** * author: Created by zzl on 15/11/19. */ @SuppressLint("validFragment") publ ...
- ViewPager中Fragment的重复创建、复用问题
在ViewPager中的Fragment的生命周期 随着页面的切换 当前的展示页相邻的页面生命周期一直在变化 一开始 刚进入Activity时候,ViewPager默认初始化好前两个Fragment ...
- viewpager中彻底性动态添加、删除Fragment
为了解决彻底删除fragment,我们要做的是:1.将FragmentPagerAdapter 替换成FragmentStatePagerAdapter,因为前者只要加载过,fragment中的视图就 ...
- 向 ViewPager 中添加 包含 ListView 的 Fragment
对与fragment就不说什么了,直接看API手册吧,亲. 向 ViewPager 中添加 包含 ListView 的 Fragment 的过程比较麻烦.他所表现的效果就是新闻客户端的滑动翻页效果. ...
随机推荐
- struts2学习笔记(二)—— struts2的架构【转】
一.系统架构 Struts2的官方文档附带了Struts2的架构图. 从这张图能够非常好的去理解Struts2 关于图中的Key: Servlet Filters:过滤器链,client的全部请求 ...
- 167 Two Sum-Input array is sorted, 125 Valid Palindrome,344
注意这两个元素不能是相同的. 解法一:二分查找法,逐一取数组中的值,然后second = target - numbers[i] , 用二分查找法求第二个值. 时间复杂度:O(nlongn) clas ...
- BZOJ - 3757 树上莫队解决离线路径问题 & 学习心得
题意:给你一棵树,求u,v最短路径的XXX(本题是统计权值种类) 今天课上摸鱼学了一种有意思的处理路径方式(其实是链式块状树翻车了看别的),据说实际运行跑的比XX记者还快 大概就是像序列莫队那样 首先 ...
- Advanced Data Structures in competitive programming
1.bit #define isOn(S, j) (S & (1 << j)) #define setBit(S, j) (S |= (1 << j)) #define ...
- 2019.3.25 SQL语句(进阶2)
子查询 数据库中的表沿用 上一篇博客 中使用的Employee1. 练习: 1.求所有年龄比张三小的人 select * from Employee1 where age < (select a ...
- 安装软件或运行软件时提示缺少api-ms-win-crt-runtime库解决方法
最近碰到一个问题,在我软件安装或运行时会提示缺少api-ms-win-crt-runtime-|1-1-0.dll 当然第一个想到的是运行库没有装,但是很清楚的是我的电脑是装过vc_redist_20 ...
- Springboot与MyBatis简单整合
之前搭传统的ssm框架,配置文件很多,看了几天文档才把那些xml的逻辑关系搞得七七八八,搭起来也是很麻烦,那时我完全按网上那个demo的版本要求(jdk和tomcat),所以最后是各种问题没成功跑起来 ...
- oracle 集群RAC搭建--环境准备
一,环境介绍 目前我本身环境已经有DG,正在尝试重做搭建.如需完成请移步往期文章--搭建DG
- QT跟VC++结合来进行插件的验证机制
由于最近公司要开发一个以C++插件机制为主的,主要有一个问题就是C++的二进制兼容性的问题.一旦类使用虚函数,只要随便改动下增删查改下头文件的虚函数,就会导致程序在跑的时候进行乱跳,因为这个时候exe ...
- console命令详解:(转载学习)
Console命令详解,让调试js代码变得更简单 Firebug是网页开发的利器,能够极大地提升工作效率. 但是,它不太容易上手.我曾经翻译过一篇<Firebug入门指南>,介绍了一些 ...