viewpager的适配器,传统写法会删除之前的fragment,滑到后重新加载,通过这样来节省内存,优化性能,但是项目中可能会有必须保存着之前的fragment的数据等等..比如在fragment里面选择了一些东西,最后统一需要上传的,如果按照常规adapter写法,会丢失数据,此处只是我个人记录的一些实用的功能。
对FragmentPagerAdapter , adapter中的这两个重载方法进行修改
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
Fragment fragment = fragmentList.get(position);
fm.beginTransaction().hide(fragment).commit();
}
@Override
public Fragment instantiateItem(ViewGroup container, int position) {
Fragment fragment = (Fragment) super.instantiateItem(container,
position);
fm.beginTransaction().show(fragment).commit();
return fragment;
}