ViewPager的滑动监听,需重写三个方法。
@Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {ViewPager滑动时的回调方法,三个参数分别表示:// TODO: 2017/6/21}
position:当前位置
positionOffset:当前位置滑动的百分比
positionOffsetPixels:当前位置滑动的像素
@Override public void onPageSelected(int position) {手指离开屏幕,ViewPager停止滑动时的回调}// TODO: 2017/6/21
position表示当前选中的位置。
@Override public void onPageScrollStateChanged(int arg0) {滑动状态改变时的回调,arg0有三个取值}// TODO: 2017/6/21
0:什么都没做
1:正在滑动(开始滑动)
2:停止滑动(滑动结束)
onPageScrolled方法中,变量lastValue记录上一次滑动时的positionOffsetPixels,下次回调时,比较lastValue和positionOffsetPixels的值,若lastValue > positionOffsetPixels,ViewPager左滑,反之,右滑。
在调试过程中发现左滑和右滑时,position改变的时机不同,左滑时,position+1发生在手指离开屏幕(选中之后),而右滑position-1发生在当前视图的左边视图即将出现在屏幕中时。