(转)防止ViewPager中的Fragment被销毁的方法

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


当咱们当前处在页面2的时候,页面1和页面3的View实际上已经建立好了,因此在咱们拖动的时候是能够看见他们的界面的。缓存

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


这时,若是页面3中有须要耗时的事件,好比网络访问。那么,在咱们进行 1-->2 的操做的时候,就会不断的出现页面3加载的对话框(若是有的话)。并且若是快速的 1-->2-->3的切换,3中的内容极可能还没加载出来。.net

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

后来发现真是画蛇添足,若是您的软件对内存消耗不是很在乎的话,只需加入如下代码:blog

    pager.setOffscreenPageLimit(2);  

 

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


固然这只是个取巧的方法,若是有比较好的保存状态的方法会更好。内存


转载请注明来自:http://blog.csdn.net/icyfox_bupt/article/details/18356461get

相关文章
相关标签/搜索