ViewPager.OnPageChangeListener

1.onPageScrolled,调用多次,pos从当前页面的pos开始变化

@Override
    public void onPageScrolled(int position, float positionOffset,  int positionOffsetPixels) {
       // 先走onPageSelected方法,再走这个方法
        // postion:如果是左滑动pos从0到1, 当前页面的pos,手指触碰的当前页面的pos,调用很多次,最后一次是滑动后的页面的pos,positionOffset:0.0,positionOffsetPixels0
        // position     如果是右滑pos从1到0,pos是selectedPos,
        // positionOffset 当前页面偏移的百分比  左滑从pos为0到1,递增,反之,递减,变化范围0-1
        // positionOffsetPixels 当前页面偏移的像素数,变化氛围0-手机宽的像素数,
        // positionOffsetPixels:如果是左滑从pos为0滑动到pos为1,positionOffsetPixels变化趋势是递增,反过来,递减
        Log.i(TAG, "onPageScrolled: "+ position +",positionOffset:"+positionOffset+",positionOffsetPixels"+positionOffsetPixels);
    }

2.onPageSelected,当前选中的页面的pos,只调用一次

@Override
    public void onPageSelected(int position) {
        // 只调用一次,滑动完,你当前选中的页面pos      一般在state为2后,开始走此方法
        Log.i(TAG, "onPageSelected: "+position);
        
    }

3.onPageScrollStateChanged,状态的改变

@Override
    public void onPageScrollStateChanged(int state) {
        // 状态发生改变时调用,一次一面切换需要经历状态过程为,1:用户拖拽-->2:用户手指抬起-->ViewPager.SCROLL_STATE_IDLE:0:滑动动画做完
// 如果是用户滑动引起的页面的滑动,状态会有1,如果是点击tablayout的标签,引起的页面的滑动,没有状态1,是2--->0
        Log.i(TAG, "onPageScrollStateChanged: "+state);
    }

你可能感兴趣的:(ViewPager.OnPageChangeListener)