项目需求里面,根据前一个fragment里面选项不同,后续fragment数目和类型不同。
网上查了一下,修改很简单,只要
将FragmentPagerAdapter 替换成FragmentStatePagerAdapter,因为前者只要加载过,
* fragment中的视图就一直在内存中,在这个过程中无论你怎么刷新,
* 清除都是无用的,直至程序退出; 后者 可以满足我们的需求。
并且:
//重写Adapter的方法--getItemPosition(),让其返回PagerAdapter.POSITION_NONE
我的自定义adapter:
public class MyViewPagerAdapter extends FragmentStatePagerAdapter {
private List<BusinessFragment> fragments = new ArrayList<>();
private List<String> titles = new ArrayList<>();
public MyViewPagerAdapter(FragmentManager fm, List<BusinessFragment> fragments, List<String> titles) {
super(fm);
this.fragments = fragments;
this.titles = titles;
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
//重写Adapter的方法--getItemPosition(),让其返回PagerAdapter.POSITION_NONE
@Override
public int getItemPosition(Object object) {
return PagerAdapter.POSITION_NONE;
}
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
}