使用ViewPager+Fragment出现indexoutofboundexception
2016-03-16 22:26
357 查看
今天在使用ViewPager与Fragment的时候,出现了indexoutofboundexception
后来才知道ViewPager会自动缓存1页内的数据,如果你滑动过快,有时候快速的切换自动清除所有的Fragment,使你装载Fragment的ArrayList为空,所以出现了indexoutofboundexception
//这是我装载Fragment的ArrayList
private ArrayList<Fragment> fragments = new ArrayList<Fragment>();
//创建4个Fragment,添加到ArrayList里去
int count = 4;
for (int i = 0; i < count ; i++) {
Bundle data = new Bundle();
data.putString("text", name);
NewsFragment fragment = new NewsFragment();
fragment.setArguments(data);
fragments.add(fragment);
}
得到NewsFragmentPagerAdapter实例,
NewsFragmentPagerAdapter mAdapetr = new NewsFragmentPagerAdapter(getSupportFragmentManager(), fragments);
mViewPager.setOffscreenPageLimit(count );//在setAdapter之前调用,这行代码:设置预加载这么多个Fragment。然后就不会自动清除ArrayList中的Fragment
mViewPager.setAdapter(mAdapetr);
mViewPager.setOnPageChangeListener(pageListener);
后来才知道ViewPager会自动缓存1页内的数据,如果你滑动过快,有时候快速的切换自动清除所有的Fragment,使你装载Fragment的ArrayList为空,所以出现了indexoutofboundexception
//这是我装载Fragment的ArrayList
private ArrayList<Fragment> fragments = new ArrayList<Fragment>();
//创建4个Fragment,添加到ArrayList里去
int count = 4;
for (int i = 0; i < count ; i++) {
Bundle data = new Bundle();
data.putString("text", name);
NewsFragment fragment = new NewsFragment();
fragment.setArguments(data);
fragments.add(fragment);
}
得到NewsFragmentPagerAdapter实例,
NewsFragmentPagerAdapter mAdapetr = new NewsFragmentPagerAdapter(getSupportFragmentManager(), fragments);
mViewPager.setOffscreenPageLimit(count );//在setAdapter之前调用,这行代码:设置预加载这么多个Fragment。然后就不会自动清除ArrayList中的Fragment
mViewPager.setAdapter(mAdapetr);
mViewPager.setOnPageChangeListener(pageListener);
相关文章推荐
- Android内核开发:图解Android系统的启动过程
- 如何是UIPageController右对齐的问题
- binary-tree-preorder-traversal
- 数据结构-图
- hdu 5641 King's Phone(暴力模拟题)
- maven 镜像仓库与资源文件
- shell中等待其他程序执行完毕
- shell中的时间变量
- C/C++中const关键字详解
- 作业二:注册软件github
- 【Mocha.js 101】同步、异步与 Promise
- Android--Alarm机制
- TortoiseGit无法勾选Load Putty Key,该选项为灰色的解决办法
- 剑指offer——面试题3二维数组
- android:installLocation简析
- 面向对象(二)
- 十.导入django-crispy-form并完善增加数据页面
- BZOJ-2190(仪仗队)(欧拉函数)
- jQuery常用插件
- 排序算法性能和使用场景总结