ViewPager与OnPageChangeListener

2018-07-05  本文已影响61人  INeil

1.onPageSelectedonPageScrollStateChanged

2.onPageSelectedonPageScrollStateChangedonPageScrolled

实例代码
    private boolean isDragging = false;
    @Override
    public void onPageScrollStateChanged(int state) {
        switch (state) {
            case ViewPager.SCROLL_STATE_IDLE://停止
                break;
            case ViewPager.SCROLL_STATE_DRAGGING://down
                isDragging = true;
                break;
            case ViewPager.SCROLL_STATE_SETTLING://up
                isDragging = false;
                break;
        }
    }

    int currentPosition;

    @Override
    public void onPageSelected(int position) {
        currentPosition = position;
        if (isDragging) {
            isDragging = false;
            onPageScrolled(position, 0, 0);
        }
    }

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        if(!isDragging) {
              Log.i(TAG, "onPageScrolled: :" +currentPosition);
        }
    }

onPageScrolled(int position, float positionOffset, int positionOffsetPixels)

三个参数:
position:是滑出与滑入的2个pager中的左侧一个!
positionOffset:偏移量,比例
positionOffsetPixels:偏移量,像素
滑动时,如果是向右,例如1—>2,则偏移量渐渐变大;如果是向左滑动,例如2—>1,则偏移量渐渐变小

上一篇 下一篇

猜你喜欢

热点阅读