本文主要是介绍使用ViewPager+Fragment出现indexoutofboundexception,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天在使用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+Fragment出现indexoutofboundexception的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!