您的位置:首页 > 其它

使用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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: