当我们使用ViewPager控件时,假设我们的ViewPager有三页,当我们第一次启动ViewPager显示第一页的时候,ViewPager会预加载第二页,这样当我们向第二页滑动的时候就可以看见第二页的内容了,因为第二页的内容在第一页内容显示的时候就已经加载了。当我们滑动到第二页时,ViewPager会预加载第三页,这时ViewPager中已经保存了三页的内容:第一页,第二页和第三页,这样当我们在第二页向左或向右滑动ViewPager时能看到这三页的内容。

  我在使用ViewPager控件时遇到过这样的问题,像上面说明的那样,我在把ViewPager从第一页滑动到第三页的时候看到了这三页的内容,但是假设我在第一页中做了一些操作改变了第一页的内容,而我在第三页中也做了一些操作改变了第三页的内容,可是当我从第三页滑动到第一页时发现第一页的内容还原了,而当我再次从第一页滑动到第三页时发现第三页的内容也还原了。

  问题的根源在于ViewPage的加载页数,就是说你可以指定ViewPager预加载的页数,如果不指定,ViewPager默认加载一页。在这种情况下,ViewPage会加载当前显示页面相邻的还没有加载的页面。比如说,当前显示的是首页,因为首页的左边是没有页面的,所以ViewPager会加载第二页的内容;当ViewPager滑动到第二页的时候,因为第一页已经加载,所以不会重复加载,但是第三页还没有加载,所以ViewPager会加载第三页的内容;当ViewPager滑动到第三页的时候(假设ViewPager只有三页),因为第二页已经加载过了,而第三页的右边没有任何页面了,所以ViewPager不会加载任何界面。当从第三页滑动到第二页时,因为第三页已经加载过,所以不会重新加载,虽然第一页之前加载过,但是,ViewPager的默认加载为一页,而当ViewPager在第三页的时候第一页在默认加载之外,所以从第三页滑动到第二页的时候,ViewPager会重新加载第一页,而再从第一页滑动到第三页时是同样的道理,所以会出现我上面描述的情况。

  为了避免上述情况的发生我们可以通过调用ViewPager的setOffscreenPageLimit方法来指定加载的页数,从而得到我们想要的结果。

ViewPager 的页面重置问题的更多相关文章

  1. Android开发之利用ViewPager实现页面的切换(仿微信、QQ)

    这里利用ViewPager实现页面的滑动,下面直接上代码: 1.首先写一个Activity,然后将要滑动的Fragment镶嵌到写好的Activity中. Activity的布局文件:activity ...

  2. 页面重置样式reset.css

    我把经常用到的一些页面重置样式归类到了一个.css文件中,这样可以减少代码冗余.当然还有其他的很多用处,比如h1~h5的样式全部统一的话,下面写东西很清晰很多. @charset 'utf-8'; h ...

  3. PagerTabStrip在ViewPager的页面中添加标题显示

    package com.qf.day18_viewpager_demo_05; import java.util.ArrayList; import java.util.List; import an ...

  4. android viewPager 切换页面时防止fragment重新加载

    把限制页面数设置成应用一共的页面数就可以了 ViewPager.setOffscreenPageLimit(3);

  5. 动态ViewPager导航页面

    今天新学知识总计,个人信息,仅供参考: item设置: viewpager页面设置: <?xml version="1.0" encoding="utf-8&quo ...

  6. 转:Android ViewPager多页面滑动切换以及动画效果

    一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式, 白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了 ...

  7. Android里viewpager切换页面存在页面不相邻的页面被销毁的问题

    我之前一直因为viewpager+fragment时,所有页面的状态都会被自动保存 这次自己做了一个添加了5跟fragment的viewpager 测试时发现当从第一个切换到第四个页面时,再回到第一个 ...

  8. Android ViewPager多页面滑动切换以及动画效果

    一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式,白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了, ...

  9. Android——ViewPager多页面滑动切换以及动画效果

    一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式,白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了, ...

随机推荐

  1. 【fortify】安全漏洞的分类

    https://vulncat.hpefod.com/zh-cn 下面摘要著名的软件安全专家Gary Mc Graw的2006年的新书<Software Security building se ...

  2. Linux Memcache 安装配置

    mkdir /soft cd /soft wget http://memcached.org/files/memcached-1.4.29.tar.gz tar -zxvf memcached-.ta ...

  3. 【细说Java】关于main方法的一些细节

    Public static void main(String[] args) public :main方法是jvm运行的入口,所以必须是public来供外部调用 static :main方法无需生成对 ...

  4. 成功转移安卓手机QQ聊天记录

    废话先不说,直接上干货: 只要把两个地方的数据完整的复制到新手机对应位置就可以了,但过程相当坎坷: /data/data/com.tencent.mobileqq /sdcard/Tencent/Mo ...

  5. 如何遍历HashMap

    HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的 java Map 遍历速度最优解 第一种: Map map = new HashM ...

  6. Python之*args,**kw

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #021ca1; background-color: #8e352 ...

  7. Visual Studio2013(Update4)无法生成依赖项关系图解决方案

    今天为了看别人写的一套框架,就琢磨着有没视图的方式去看别人每个类和方法之间的调用和继承关系.这个时候发现了一个VS2013自带的功能: 带着兴奋的心情小手一抖一点... 我等呀等,等呀等.... 尼玛 ...

  8. Oracle Created Database Users: Password, Usage and Files References (文档 ID 160861.1)

    This document is no longer actively maintained, for info on specific (new) users in recent product e ...

  9. XtraBackup备份笔记

    安装 rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm yum in ...

  10. 【转载】Fiddler进行模拟Post提交json数据,总为null解决方式

    Request Headers: User-Agent: FiddlerHost: localhost:3248Content-Type: application/json; charset=utf- ...