仿android手机相册翻页滑动,删除图片自动切换到下一页或上一页功能

突然间加新需求要求相机自己写不调用系统,然后拍照后进行查看类似手机相册的翻页功能,可以对照片进行删除,相机目前还有点毛病,对焦总是初始化进入相机页面才会对焦准确。还是说说这个翻页吧,首先我用的是viewpager加载fragment的方式进行翻页滑动。问题就出在我进行删除的时候,fragmentstatepageradapter的notifyDatasetChanged()方法刷新数据源死活刷不出来。在adapter中重新添加了set数据的方法把之前fragmentmanager中的fragment全部移除然后再重新添加数据,同时对getItemPosition()和nitifyDataSetChanged()方法进行改写就好了。。

有参考其他人的博客,突然找不到地址了,找到了贴上链接感谢给我灵感的作者

class MyPagerAdapter extends FragmentStatePagerAdapter{
    private List list;
    private int mSize;
    private int mCount=0;
    private FragmentManager fm;
    public MyPagerAdapter(FragmentManager fm,List list) {
        super(fm);
        this.list=list;
        this.fm=fm;
        mSize = list == null?0:list.size();
    }

    @Override
    public Fragment getItem(int position) {
        return list.get(position);
    }

    @Override
    public int getItemPosition(Object object) {
        if(mCount>0){
            mCount--;
            return POSITION_NONE;
        }
        return super.getItemPosition(object);
    }

    @Override
    public int getCount() {
        return mSize;
    }
    public void setList(List list) {
        if(this.list != null){
            FragmentTransaction ft = fm.beginTransaction();
            for(Fragment f:this.list){
                ft.remove(f);
            }
            ft.commit();
            ft=null;
            fm.executePendingTransactions();
        }
        this.list = list;
        mSize=list==null?0:list.size();
        notifyDataSetChanged();
    }

    @Override
    public void notifyDataSetChanged() {
        mCount=getCount();
        super.notifyDataSetChanged();
    }
}


你可能感兴趣的:(相机相册)