I want to know more about ViewPager behavior. I have a FragmenPagerAdapter :
public class DatePagerAdapter extends FragmentPagerAdapter {
public DatePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 1);
int offset = position - 100;
calendar.add(Calendar.MONTH, offset);
// Toast.makeText(TestActivity.this,(calendar.get(Calendar.MONTH)+1)
Log.v("CALENDAR", "" + position);
TestFragmentDate date = TestFragmentDate.newInstance(TestActivity.this, calendar);
return date;
}
@Override
public int getCount() {
return 200;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
return super.instantiateItem(container, position);
}
}
And the code in my Activity :
adapter = new DatePagerAdapter(getSupportFragmentManager());
MinFragmentPagerAdapter wrapperMin = new MinFragmentPagerAdapter(getSupportFragmentManager());
wrapperMin.setAdapter(adapter);
PagerAdapter wrapper = new InfinitePagerAdapter(wrapperMin);
viewPager = (ViewPager) this.findViewById(R.id.pager);
viewPager.setAdapter(adapter);
viewPager.setCurrentItem(100);
viewPager.addOnPageChangeListener(this);
According to my senior, ViewPager always draw 3 fragments, and keep reuse them. For example, at first I have view at position :
99, 100, 101
If I roll right, it will destroy 99 and create 102, and so on.
But, when I debug at the function getItem
, at first it did run into this function, but when I roll right for 5 or 6 page, and then roll back, it didn't run into getItem
, at the position which is supposed to be destroyed.
So would anyone please explain for me about ViewPager's behavior ? Thank you.