Listener 的源码如下:
239
240 public static class SimpleOnPageChangeListener implements OnPageChangeListener {
241 @Override
242 public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
243 // This space for rent
244 }
245
246 @Override
247 public void onPageSelected(int position) {
248 // This space for rent
249 }
250
251 @Override
252 public void onPageScrollStateChanged(int state) {
253 // This space for rent
254 }
255 }
1. onPageScrolled ( int position , float positionOffset , int positionOffsetPixels ):
position:当前的位置
positionoffset:当前滚动比例(左-右/0-1)(右-左/1-0)
positionOffsetPixels:当前实际滚动的像素(左-右/0-页宽) (右-左/页宽-0)
被调用的场景: ViewPager滚动时总被回调,这个函数在操作ViewPager时被回调很多次。
1.手指拖动 action_move 。n次
2.惯性还原 computeScroll()。n次
使用场景:做view的动画效果时可以用这个回调函数。
2.onPageSelected(int position)
被调用的场景:ViewPager确定页面是哪一页时。1次
1. 手指拖动后抬起 action_up 。1次
2. 或者手指滑动超出屏幕时 action_cancel。1次
使用场景:页面切换后改变对应的tab的状态可以用这个回调函数。
3.onPageScrollStateChanged(int state):
被调用的场景:ViewPager状态切换时被调用。这个函数在操作ViewPager时被回调3次。
1. 开始滚动 dragging拖动状态。1次
2. 惯性滚动 settling还原状态。1次
3. 滚动结束 idle空闲状态。1次
使用场景:做页面状态变化后引起的view特效时可以用这个回调函数