我来谈谈ViewPager搭配FragmentAdapter的数据丢失问题
来源:互联网 发布:java字符日期格式化 编辑:程序博客网 时间:2024/06/06 03:51
先来一张碎片Fragment的生命周期图开开胃......
首先呢,我来介绍一下:
当我们使用Viewpager搭配FragmentPagerAdapter进行滑动的时候,某些情况下会发现前边几页自己手动产生的数据会被清空掉,对于这个碎片的滑动:
它的出现和消失只是和Activity一样,是一个是否在栈顶的关系,当非栈顶碎片出现再栈顶的时候,它就会从碎片的onCreateView这个生命周期开始走到onDestroyView之前,如果你把adapter这种装数据的对象放在了onCreateView及以下的生命节点里,当碎片重新回到栈顶之后,adapter一定会被重新创建,所以数据丢失。。。。解决方案就是将adapter的实例化放在onCreate里。
再来谈谈如果将adapter的实例化放在了onCreateView及以下的解决方案:
使用setOffscreenPageLimit来设置ViewPager的预加载页数,可以同样保存数据。这个东西它的作用是预加载下x个页面,当我们预加载的页数x大于等于 总页数-1时,也就是说,在第一次如果就预加载了所有的页面,今后的滑动所有页面的每一个生命周期都不会再走一次,相当于栈顶有多个碎片。。。。当然啦,如果不是所有,随着总有一个以上的碎片被压入栈顶以下,肯定会有数据的丢失,除非你把adapter的初始化重放一下位置。。。。
源码解析(转):http://blog.csdn.net/bob1993_dev/article/details/46491797
2 0
- 我来谈谈ViewPager搭配FragmentAdapter的数据丢失问题
- 20 ViewPager demo5,6:FragmentAdapter 导航数据
- 谈谈Session丢失的问题
- Viewpager使用FragmentAdapter
- ViewPager+FragmentAdapter+Fragment
- 我来谈谈我理解的ArrayList
- 我来谈谈 Borland 的失败原因
- 我也来谈谈Java的命运
- 我来谈谈进程的隐藏
- viewPager+fragment的简洁搭配
- viewpager+FragmentAdapter实现App主界面Tab
- viewpager+fragmentadapter实现微信界面
- 也来谈谈开发人员的转型问题
- ViewPager 更新数据的问题
- 我来谈谈中国的程序员和外国的程序员
- 我也来谈谈缓存
- 我来谈谈微信小程序
- ViewPager嵌套带ViewPager的Banner,来回切换Banner数据丢失
- window和linux的hosts文件位置
- OC-字典(1)
- FaceBook/infer-linter静态代码分析
- json和js对象之间的互相转换
- Java集合之Map
- 我来谈谈ViewPager搭配FragmentAdapter的数据丢失问题
- HDU-1062
- Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
- 自己按照书上实现的c语言的单链表
- 关于springmvc配置文件放在非默认位置
- 进程调度算法之“先来先服务”、“短任务优先”和“时间片轮选”
- 黑马程序员------------------局部内部类 匿名内部类
- Java输入/输出流
- [安卓]手机管家(八)防盗之业务逻辑