/**
  * This method will be invoked when the current page is scrolled, either as part of a
  * programmatically initiated smooth scroll or a user initiated touch scroll. If you override this
  * method you must call through to the superclass implementation (e.g.
  * super.onPageScrolled(position, offset, offsetPixels)) before onPageScrolled returns.
  *
  * @param position Position index of the first page currently being displayed. Page position+1
  *     will be visible if positionOffset is nonzero.
  * @param offset Value from [0, 1) indicating the offset from the page at position.
  * @param offsetPixels Value in pixels indicating the offset from position.
  */
 protected void onPageScrolled(int position, float offset, int offsetPixels) {
   if (mOnPageChangeListener != null) {
     mOnPageChangeListener.onPageScrolled(position, offset, offsetPixels);
   }
   if (mInternalPageChangeListener != null) {
     mInternalPageChangeListener.onPageScrolled(position, offset, offsetPixels);
   }
 }
  public void setCurrentItemInternal(int item, boolean smoothScroll, boolean always, int velocity) {
    if (!always && mCurItem == item) {
      setScrollingCacheEnabled(false);
      return;
    }

    item = mViewBehind.getMenuPage(item);

    final boolean dispatchSelected = mCurItem != item;
    mCurItem = item;

    if (mViewBehind.getbMode()) {
      final int destY = getDestScrollX(mCurItem);
      if (dispatchSelected && mOnPageChangeListener != null) {
        mOnPageChangeListener.onPageSelected(item);
      }
      if (dispatchSelected && mInternalPageChangeListener != null) {
        mInternalPageChangeListener.onPageSelected(item);
      }
      if (smoothScroll) {
        smoothScrollTo(0, destY, velocity);
      } else {
        completeScroll();
        scrollTo(0, destY);
      }
    } else {
      final int destX = getDestScrollX(mCurItem);
      if (dispatchSelected && mOnPageChangeListener != null) {
        mOnPageChangeListener.onPageSelected(item);
      }
      if (dispatchSelected && mInternalPageChangeListener != null) {
        mInternalPageChangeListener.onPageSelected(item);
      }
      if (smoothScroll) {
        smoothScrollTo(destX, 0, velocity);
      } else {
        completeScroll();
        scrollTo(destX, 0);
      }
    }
  }