为了解决viewpager彻底删除fragment问题

来源:互联网 发布:gal一般用哪种编程语言 编辑:程序博客网 时间:2024/06/08 04:50
为了解决viewpager彻底删除fragment,我们要做的是:
1.将FragmentPagerAdapter 替换成FragmentStatePagerAdapter,因为前者只要加载过,fragment中的视图就一直在内存中,在这个过程中无论你怎么刷新,清除都是无用的,直至程序退出; 后者 可以满足我们的需求。
2.我们可以重写Adapter的方法--getItemPosition(),让其返回PagerAdapter.POSITION_NONE即可;
public class SimpleFragmentAdapter extends FragmentStatePagerAdapter {        private List<LocalMedia> selectIamges=new ArrayList<>();        public SimpleFragmentAdapter(FragmentManager fm) {            super(fm);        }        public void setSelectIamges(List<LocalMedia> selectIamges) {            this.selectIamges = selectIamges;        }        @Override        public Fragment getItem(int position) {            return ImagePreviewFragment.getInstance(selectIamges.get(position).getPath(),0);        }        @Override        public int getCount() {            return selectIamges.size();        }        @Override        public int getItemPosition(Object object) {            return POSITION_NONE;        }    }

1 0