实现屏幕滑动 PagerAdapter

来源:互联网 发布:淘宝第二次申请售后 编辑:程序博客网 时间:2024/06/01 10:43

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)
2. destroyItem(ViewGroup, int, Object)
3. getCount()
4. isViewFromObject(View, Object)
下面我们以代码的形式,说明这四个方法的含义以及如何使用
view sourceprint?
01.privateclassViewPagerAdapter extendsPagerAdapter {
02. 
03.// 获取要滑动的控件的数量,在这里我们以滑动的广告栏为例,那么这里就应该是展示的广告图片的ImageView数量
04.@Override
05.publicintgetCount() {
06.returnimages.size();
07.}
08. 
09.// 来判断显示的是否是同一张图片,这里我们将两个参数相比较返回即可
10.@Override
11.publicbooleanisViewFromObject(View arg0, Object arg1) {
12.returnarg0 == arg1;
13.}
14. 
15.// PagerAdapter只缓存三张要显示的图片,如果滑动的图片超出了缓存的范围,就会调用这个方法,将图片销毁
16.@Override
17.publicvoiddestroyItem(ViewGroup view,intposition, Object object) {
18.view.removeView(images.get(position));
19.}
20. 
21.// 当要显示的图片可以进行缓存的时候,会调用这个方法进行显示图片的初始化,我们将要显示的ImageView加入到ViewGroup中,然后作为返回值返回即可
22.@Override
23.publicObject instantiateItem(ViewGroup view,intposition) {
24.view.addView(images.get(position));
25.returnimages.get(position);
26.}
27.}

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



android ViewPager滑动事件讲解

今天在做项目的时候,由于要处理viewPager页面滑动的事件,所以对其进行了一个小小的研究:

首先ViewPager在处理滑动事件的时候要用到OnPageChangeListener

OnPageChangeListener这个接口需要实现三个方法:(onPageScrollStateChanged,onPageScrolled ,onPageSelected)

onPageScrollStateChanged(int arg0)   ,此方法是在状态改变的时候调用,其中arg0这个参数

有三种状态(0,1,2)。arg0 ==1的时辰默示正在滑动,arg0==2的时辰默示滑动完毕了,arg0==0的时辰默示什么都没做。

当页面开始滑动的时候,三种状态的变化顺序为(1,2,0),演示如下:

当viewPager状态改变时候的代码块:

http://img.my.csdn.net/uploads/201304/16/1366083605_9502.png

打印结果:

http://img.my.csdn.net/uploads/201304/16/1366083785_1088.png

 onPageScrolled(int arg0,float arg1,int arg2)    ,当页面在滑动的时候会调用此方法,在滑动被停止之前,此方法回一直得到

调用。其中三个参数的含义分别为:

arg0 :当前页面,及你点击滑动的页面

arg1:当前页面偏移的百分比

arg2:当前页面偏移的像素位置   

(参见官网:http://docs.eoeandroid.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener.html#onPageScrolled(int, float, int))

演示如下:

页面滚动时侯代码:

http://img.my.csdn.net/uploads/201304/16/1366084226_5095.png

日志打印:

http://img.my.csdn.net/uploads/201304/16/1366084267_6134.png

onPageSelected(int arg0) :   此方法是页面跳转完后得到调用,arg0是你当前选中的页面的Position(位置编号)。


0 0
原创粉丝点击