zoukankan      html  css  js  c++  java
  • Android学习笔记(一): Fragment(二) Fragment 的销毁机制

    在使用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多缓存一个页面,这样上面的问题就得到了解决。

    当然这只是个取巧的方法,如果有比较好的保存状态的方法会更好。

  • 相关阅读:
    9多线程与异步
    5文件操作
    3C#面向对象概念
    2初步了解C#类与对象
    7Linq查询语言
    6字符编码
    8网络请求之http
    1初步了解C#语言基础
    4C#格式处理
    WPF及Silverlight中将DataGrid数据导出 南京酷得软件
  • 原文地址:https://www.cnblogs.com/zzblee/p/4391642.html
Copyright © 2011-2022 走看看