美文网首页
ViewPager.OnPageChangeListener

ViewPager.OnPageChangeListener

作者: 陈萍儿Candy | 来源:发表于2021-01-18 15:28 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/fgatzktx.html