星空网 > 软件开发 > 操作系统

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中移出当前View
3. 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     @Override10     public boolean isViewFromObject(View arg0, Object arg1) {11       return arg0 == arg1;12     }13 14     // PagerAdapter只缓存三张要显示的图片,如果滑动的图片超出了缓存的范围,就会调用这个方法,将图片销毁15     @Override16     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 index27       if(currentPage == (Integer)view.getTag()){28         return POSITION_NONE;29       }else{30         return POSITION_UNCHANGED;31       }32     }33   }34   // Get current page index35   pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {36 37     @Override38     public void onPageSelected(int position) {39       currentItem = position;40     }41 42     @Override43     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {44     }45 46     @Override47     public void onPageScrollStateChanged(int state) {48     }49   });50   // Return current index to Adapter51   public int getCurrentPagerIdx() {52     return currentItem;53   }

 

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

 




原标题:ViewPager 重新加载 及 PagerAdapter 使用

关键词:ie

ie
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

测试文章:https://www.ikjzd.com/articles/110109
亚马逊德国站店铺因shua单被关,如何申诉?:https://www.ikjzd.com/articles/110110
沃尔玛正逐步追赶亚马逊,调查显示亚马逊消费者购买率下降:https://www.ikjzd.com/articles/110111
西班牙卖家福利!性价比高的站外推广渠道推荐:https://www.ikjzd.com/articles/110112
亚马逊入库丢件?申请索赔需要的资料都在这!:https://www.ikjzd.com/articles/110113
进入法国电商市场,卖家需要知道的5件事:https://www.ikjzd.com/articles/110114
九月初新疆旅游服装搭配(新疆游玩必备衣服清单):https://www.vstour.cn/a/408257.html
黄果树瀑布景区景点 - 黄果树瀑布景区景点分布图:https://www.vstour.cn/a/408258.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流