防止ViewPager中的Fragment被销毁的方法

转载 2015年07月10日 14:02:41

原文地址:http://blog.csdn.net/icyfox_bupt/article/details/18356461

在使用ViewPager与Fragment的时候,ViewPager会自动缓存1页内的数据,如下图:


当我们当前处在页面2的时候,页面1和页面3的View实际上已经创建好了,所以在我们拖动的时候是可以看见他们的界面的。

但是当我们的页面处在1的时候,页面3实际上就已经销毁了。直到跳转到页面2的时候,页面3才会创建View。


这时,如果页面3中有需要耗时的事件,比如网络访问。那么,在我们进行 1-->2 的操作的时候,就会不断的出现页面3加载的对话框(如果有的话)。而且如果快速的 1-->2-->3的切换,3中的内容很可能还没加载出来。

这样重复的加载,既影响体验、又耗费时间和流量,所以笔者这两天一直在查如何在Fragment移出的时候不要销毁,或者保存状态。

后来发现真是多此一举,如果您的软件对内存消耗不是很在意的话,只需加入以下代码:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. pager.setOffscreenPageLimit(2);  

就可以让ViewPager多缓存一个页面,这样上面的问题就得到了解决。

为了保险起见,我是几个pager就设置了缓存几个。

相关文章推荐

防止ViewPager中的Fragment被销毁的方法,更加流畅

在使用ViewPager与Fragment的时候,ViewPager会自动缓存1页内的数据,如下图: 当我们当前处在页面2的时候,页面1和页面3的View实际上已经创建好了,所以在我们拖动的时候...

防止ViewPager中的Fragment被销毁的方法

在使用ViewPager与Fragment的时候,ViewPager会自动缓存1页内的数据,如下图: 当我们当前处在页面2的时候,页面1和页面3的View实际上已经创建好了,所以在我们拖动的时候是...

防止ViewPager中的Fragment被销毁的方法

在使用ViewPager与Fragment的时候,ViewPager会自动缓存1页内的数据,如下图: 当我们当前处在页面2的时候,页面1和页面3的View实际上已经创建好了,所以在我们拖动的...

ViewPager防止Fragment销毁以及取消Fragment的预加载

转载请注明出处:http://blog.csdn.net/mr_liabill/article/details/48749807  来自《LiaBin的博客》 ViewPager简介 ...

ViewPager防止Fragment销毁以及取消Fragment的预加载

ViewPager简介 ViewPager不用多说,是v4包中的一个控件,可以用来实现屏幕间的切换。 跟listview一样,需要使用适配器,PagerAdapter PagerAdapter 必...

ViewPager切换防止Fragment销毁以及取消Fragment的预加载

存在的问题 1. 默认情况下,ViewPager会自动预加载 2. 切换过程中会销毁fragment视图下面的图说明情况如图,在Activity中使用ViewPager嵌套三个Fragment,当...

标题栏和导航栏的组合界面实现方法fragment嵌套+viewpager

对于这种界面大家都很熟悉,上面的标题栏滑动或点击的时候可选择不同的界面,下面的导航栏点击可切换不同的界面,这样的效果可以在一个Acitivity里面加载最多的页面: 对于这样的界面如...

Viewpager中Fragment的生命周期以及方法流程详解

当我看到这个图片的时候我是有一点疑惑的,为什么我们常用的onViewCeated()方法不在生命周期里面呢?我个人觉得把onViewCeated()当做生命周期也行吧。这是我个人的理解,希望大家不要喷...

浅析Fragment和ViewPager切换页面方法

Fragment和Viewpager都可以用于在一个Activity下切换页面,并且 Fragment和Viewpager经常搭配使用。   经常会有下图所示的需要      两个按钮对应两个页...

利用TabLayout(5.0新技术)+ViewPager+Fragment方法实现书签导航

效果展示: 实现书签导航思路: Fragment + ViewPager + TabLayout(5.0新技术) 效果:顶部有书签Tablayout,点击书签或滑动Fragment, ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:防止ViewPager中的Fragment被销毁的方法
举报原因:
原因补充:

(最多只允许输入30个字)