Android清空ViewPager缓存,Android应用开发之ViewPager 重新加载 及 PagerAdapter 使用

PagerAdapter 简介

PagerAdapter是android.support.v4包中的类,它的子类有FragmentPagerAdapter, FragmentStatePagerAdapter,这两个adapter都是Fragment的适配器,用于实现Fragment的滑动效果,这两个adapter的使用和区别这次就先不介绍了,等下次有时间再做详细的介绍。

PagerAdapter主要是viewpager的适配器,而viewPager则也是在android.support.v4扩展包中新添加的一个强大的控件,可以实现控件的滑动效果,比如咱们在软件中常见的广告栏的滑动效果,用viewPager就可以实现。今天主要介绍如何使用viewPagr并重写PagerAdapter实现常见广告栏的滑动效果。

PagerAdapter用法简介

首先,如果继承pageradapter,至少必须重写下面的四个方法

1 instantiateItem(ViewGroup, int) ?返回对象表明了PagerAdapter适配器选择哪个对象放在当前的ViewPager中2. destroyItem(ViewGroup, int, Object)?ViewGroup中移出当前View3. getCount()?获取当前窗体界面数4. isViewFromObject(View, Object) ?用于判断是否由对象生成界面下面我们以代码的形式,说明这四个方法的含义以及如何使用

?

1  private class ViewPagerAdapter extends PagerAdapter {

2         // 获取要滑动的控件的数量,在这里我们以滑动的广告栏为例,那么这里就应该是展示的广告图片的ImageView数量

3         @Override

4         public int getCount() {

5             return 0;

6         }

7

8         // 来判断显示的是否是同一张图片,这里我们将两个参数相比较返回即可

9         @Override

10         public boolean isViewFromObject(View arg0, Object arg1) {

11             return arg0 == arg1;

12         }

13

14         // PagerAdapter只缓存三张要显示的图片,如果滑动的图片超出了缓存的范围,就会调用这个方法,将图片销毁

15         @Override

16         public void destroyItem(ViewGroup view, int position, Object object) {

17         }

18

19         // 当要显示的图片可以进行缓存的时候,会调用这个方法进行显示图片的初始化,我们将要显示的ImageView加入到ViewGroup中,然后作为返回值返回即可

20         public Object instantiateItem(ViewGroup container, int position) {

21             return container;

22         }

23

24         public int getItemPosition(Object object) {

25             View view = (View)object;

26             int currentPage = ((PhotoPageActivity)context).getCurrentPagerIdx(); // Get current page index

27             if(currentPage == (Integer)view.getTag()){

28                 return POSITION_NONE;

29             }else{

30                 return POSITION_UNCHANGED;

31             }

32         }

33     }

34     // Get current page index

35     pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

36

37         @Override

38         public void onPageSelected(int position) {

39             currentItem = position;

40         }

41

42         @Override

43         public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

44         }

45

46         @Override

47         public void onPageScrollStateChanged(int state) {

48         }

49     });

50     // Return current index to Adapter

51     public int getCurrentPagerIdx() {

52         return currentItem;

53     }

如果想要刷新 直接调用notifyDataSetChanged()

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值