ViewPager中图片的动态删除

查看了不少关于ViewPager的资料,但更多的是ViewPager中View的展示,网上也有不少资料说更新页面的事例,但是试过一遍,不咋好使,所以只能是自己动手了。
首先描述下我现在的需求,拍照后将图片保存本地,然后,通过ViewPager进行图片的展示,滑动到当前的图片可删除(保存在本地的图片也清除),同时页面刷新。
一、遇到的主要问题:
1.页面不刷新;
2.删除图片时,删除SD卡中的图片是正确的,显示出的图片错误;
二、解决办法
1.页面不刷新,在adapter中设置:

    @Override
    public int getItemPosition(Object object) {
        return POSITION_NONE;
    }

2.显示出的图片错误,在adapter中设置:

@Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            if(mImageViews ==null || mImageViews.length<=0) return ;
            if(position==mImageViews.length) position--;
            container.removeView(mImageViews[position]);  
        }

3.就是删除后,重新加载下viewpager。

demo地址http://pan.baidu.com/s/1o6kfvho

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
动态删除 ViewPager 的 Fragment,需要执行以下步骤: 1. 创建一个 FragmentStatePagerAdapter 的子类,用于管理 ViewPager 的 Fragment。 2. 在子类实现 getItem() 方法,该方法返回要显示的 Fragment。 3. 在子类实现 getCount() 方法,该方法返回 Fragment 的数量。 4. 在子类实现 getItemPosition() 方法,该方法返回 Fragment 在 ViewPager 的位置。 5. 在子类创建一个 ArrayList,用于存储 ViewPager 的 Fragment。 6. 在子类的构造函数,将 ViewPager 的 Fragment 添加到 ArrayList 。 7. 在子类创建一个方法,用于从 ArrayList 删除 Fragment。 8. 在删除 Fragment 后,调用 notifyDataSetChanged() 方法更新 ViewPager。 以下是示例代码: ```java public class MyPagerAdapter extends FragmentStatePagerAdapter { private ArrayList<Fragment> fragments = new ArrayList<>(); public MyPagerAdapter(FragmentManager fm) { super(fm); fragments.add(new Fragment1()); fragments.add(new Fragment2()); fragments.add(new Fragment3()); } @Override public Fragment getItem(int position) { return fragments.get(position); } @Override public int getCount() { return fragments.size(); } @Override public int getItemPosition(Object object) { int index = fragments.indexOf(object); if (index == -1) { return POSITION_NONE; } else { return index; } } public void removeFragment(int position) { fragments.remove(position); notifyDataSetChanged(); } } ``` 在 Activity 或 Fragment ,可以通过以下方式删除 ViewPager 的 Fragment: ```java MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager()); viewPager.setAdapter(adapter); adapter.removeFragment(position); ``` 其,position 为要删除的 Fragment 在 ViewPager 的位置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值