11.1、PagerAdapter适配器
PagerAdapter主要是viewpager的适配器,而viewPager是android.support.v4扩展中新添加的一个强大控件,可以实现控件的滑动效果,
继承pageradapter,至少必须要重写以下四个方法:
- instantiateItem(ViewGroup, int)
- destroyItem(ViewGroup, int, Object)
- getCount()
- isViewFromObject(View, Object)
具体含义以及使用如下:
private class ViewPagerAdapter extends PagerAdapter { // 获取要滑动的控件的数量,在这里我们以滑动的广告栏为例,那么这里就应该是展示的广告图片的ImageView数量 @Override public int getCount() { return images.size(); } // 来判断显示的是否是同一张图片,这里我们将两个参数相比较返回即可 @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } // PagerAdapter只缓存三张要显示的图片,如果滑动的图片超出了缓存的范围,就会调用这个方法,将图片销毁 @Override public void destroyItem(ViewGroup view, int position, Object object) { view.removeView(images.get(position)); } // 当要显示的图片可以进行缓存的时候,会调用这个方法进行显示图片的初始化,我们将要显示的ImageView加入到ViewGroup中,然后作为返回值返回即可 @Override public Object instantiateItem(ViewGroup view, int position) { view.addView(images.get(position)); return images.get(position); } }
11.2、OnPageChangeListener接口
OnPageChangeListener是ViewPager在处理滑动事件的时候需要用到的,这个接口需要实现三个方法:
- onPageScrollStateChanged(int state)
此方法是在状态改变时调用的,有三种状态(0,1,2)。当arg0=1时表示正在滑动,arg0=2时表示滑动完毕,arg0=3表示什么都没做。
当页面开始滑动时,三种状态的变化顺序是(1,2,0)
- onPageScrolled(int position,float positionOffset,int positionOffsetPixels)
当页面滑动的时候会调用此方法,直到滑动完毕。这三个参数的含义分别为:
- position:当前页面,及滑动的页面
- positionOffset:当前页面滑动的比例,如果页面向右翻动,则值不断变大,最后在趋近1的时候变为0.如果向左翻动,则不断变小,最后变为0
- positionOffsetPixels:当前页面滑动像素,变化情况和positionOffset一致
- onPageSelected(int position)
此方法是页面跳转完后调用,position代表你当前选中页面的位置编号