今天在使用ViewPager的时候,遇到需要需要屏蔽预加载的问题,屏蔽预加载Demo点击下载。下面贴出核心代码:
public class MainActivity extends FragmentActivity {
/**
* 作为页面容器的ViewPager
*/
private MyViewPager mViewPager;
/**
* 页面集合
*/
private List<Fragment> fragmentList;
/**
* 四个Fragment(页面)
*/
private OneFragment oneFragment;
private TwoFragment twoFragment;
private ThreeFragment threeFragment;
private FourFragment fourFragment;
/**屏幕宽度*/
private int screenWidth;
/**当前选中的项*/
private int currenttab=-1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mViewPager=(MyViewPager) findViewById(R.id.viewpager);
// mViewPager.setOffscreenPageLimit(3); // 这个方法没有注释掉还是会预加载,参数是表明预加载的页面数
fragmentList=new ArrayList<Fragment>();
oneFragment=new OneFragment();
twoFragment=new TwoFragment();
threeFragment=new ThreeFragment();
fourFragment=new FourFragment();
fragmentList.add(oneFragment);
fragmentList.add(twoFragment);
fragmentList.add(threeFragment);
fragmentList.add(fourFragment);
screenWidth=getResources().getDisplayMetrics().widthPixels;
mViewPager.setAdapter(new MyFrageStatePagerAdapter(getSupportFragmentManager()));
}
/**
* 定义自己的ViewPager适配器。
* 也可以使用FragmentPagerAdapter。关于这两者之间的区别,可以自己去搜一下。
*/
class MyFrageStatePagerAdapter extends FragmentStatePagerAdapter{
public MyFrageStatePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
}
//手动设置ViewPager要显示的视图
// private void changeView(int desTab)
// {
// mViewPager.setCurrentItem(desTab, true);
// }
}