用Fragment来填充ViewPager是,Fragment都是通过创建对象来添加到ViewPager中的,
mFirstFrag = new FirstFragment(MainActivity.this);
mSecondFrag = new SecondFragment(MainActivity.this);
mThirdFrag = new ThirdFragment(MainActivity.this);
FragmentPagerAdapter madapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public int getCount() {
return mLi.size();
}
@Override
public Fragment getItem(int arg0) {
return mLi.get(arg0);
}
};
mLi.add(mFirstFrag);
mLi.add(mSecondFrag);
mLi.add(mThirdFrag);
contentPager.setAdapter(madapter);
获取当前展示的Frament的方法
int index = contentPager.getCurrentItem();
switch (index) {
case 0://索引为0的是第一个页面,mFirstFrag是第一个页面
mFirstFrag.show(count);
break;
case 1:
mSecondFrag.show(count);
break;
default:
break;
}
第二个问题是:viewPager的缓存问题
当我们显示第一个页面的时候,第二个页面就缓存好了,但是当我们从第三个页面切换到第一个页面的时候,第一个页面已经被销毁了,这是后会重新加载,会调用Fragment的onCreateView方法,如果我们不想让他重新加载怎么办呢?
contentPager.setOffscreenPageLimit(3);让viewpager缓存3个页面