监听ViewPager的滑动,需要实现3个方法:
onPageScrolled(int i, float v, int i1)
onPageSelected(int i)
onPageScrollStateChanged(int i)
1.onPageScrolled(int i, float v, int i1):
每次点击ViewPagerItem时和滑动ViewPager都会调用,且调用多次;
i为当前页面的索引,v为当前页面偏移的百分比,i1为当前页面偏移的像素位置;比如: 第一个(position=0)Viewpager滑动到第二个(position=1)viewPager,此时i=0;
2.onPageSelected(int i):
每次点击或切换ViewPagerItem时调用,且调用多次;
ViewPager跳转到新页面时触发该方法,i表示新页面的位置; 比如:第一个页面跳转到第二个界面,此时i=1;
初始默认为0,所以首次position=0时,不调用onPageSelected();解决方法:
mViewPager.addOnPageChangeListener(pageChangeListener);
pageChangeListener.onPageSelected(position);
3.onPageScrollStateChanged(int i):
i表示滑动状态:i=0 空闲静止;i=1 手指在屏幕的滑动状态; i=2 手指离开屏幕的惯性滑动状态
4.做ViewPager的预加载,用onPageSelected(int i)方法,根据i判断是否是最后一项;
删除ViewPager的item时,不调用onPageSelected(int i).