PagerAdapter的使用方法

来源:互联网 发布:上海淘宝摄影培训班 编辑:程序博客网 时间:2024/06/05 20:36

关于PagerAdapter是一个帮助ViewPager自适应的一个抽象类。

要使用PagerAdapter需要引用android.support.v4.view.PagerAdapter包。

他的子类有FragmentPagerAdapter, FragmentStatePagerAdapter。
可以实现控件的滑动效果,比如咱们在软件中常见的广告栏的滑动效果,也就是开发人员说的轮播图,用viewPager就可以实现。

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

1. instantiateItem(ViewGroup, int)
2. destroyItem(ViewGroup, int, Object)
3. getCount()
4. isViewFromObject(View, Object)

private class ViewPagerAdapter extends PagerAdapter { private List mListViews; public ViewPagerAdapter(List mListViews) {              this.mListViews = mListViews;//构造方法,参数是我们的页卡,这样比较方便。          }  // 获取要滑动的控件的数量,在这里我们以滑动的广告栏为例,那么这里就应该是展示的广告图片的ImageView数量@Overridepublic int getCount() {return images.size();}// 来判断显示的是否是同一张图片,这里我们将两个参数相比较返回即可@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}// PagerAdapter只缓存三张要显示的图片,如果滑动的图片超出了缓存的范围,就会调用这个方法,将图片销毁@Overridepublic void destroyItem(ViewGroup view, int position, Object object) {view.removeView(images.get(position));}// 当要显示的图片可以进行缓存的时候,会调用这个方法进行显示图片的初始化,我们将要显示的ImageView加入到ViewGroup中,然后作为返回值返回即可@Overridepublic Object instantiateItem(ViewGroup view, int position) {view.addView(images.get(position));return images.get(position);}}

实现了这四个方法、就可以实现滑动的效果了

那么夸大滑动之后要怎么捕获这个图片改变的事件呢、用以下方法

ViewPager.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) { //当这一页被选中的时候执行这段代码。Toast.makeText(mActivity, "选择:" + arg0, Toast.LENGTH_SHORT).show();}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {//当界面滑动的时候执行这段代码}@Overridepublic void onPageScrollStateChanged(int arg0) {         //当这个页面的滑动状态改变的时候执行这段代码 }});
这样就可以捕获滑动视图的状态了。根据这些状态来执行相应的操作。

0 0
原创粉丝点击