viewPager组件的适配器可以使用pagerAdapter,也可以使用pagerAdapter的两个子类
分别是FragmentPagerAdapter和FragmentStatePagerAdapter,下面来说说两者区别
FragmentPagerAdapter
用法:
private class HomeAdapter extends FragmentPagerAdapter{
public HomeAdapter(FragmentManager fm) {
super(fm);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Fragment getItem(int position) {
return FragmentFactory.getFragment(position);
}
@Override
public int getCount() {
if(mMainTitles!=null)
return mMainTitles.length;
return 0;
}
}
FragmentStatePagerAdapter
用法和FragmentPagerAdapter是一样的
区别:
FragmentPagerAdapter具有缓存机制,在fragment第一遍滑动时会将fragment缓存在容器中,第二次滑倒该fragment直接在缓存中获取fragment而不会重新创建新的fragment,适合在viewPager中的fragment数量不多的时候使用。
FragmentStatePagerAdapter没有缓存机制,每次都会重新创建新的fragment,适合在viewPager中数量较多的时候使用