Ejemplo n.º 1
0
  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);
      }
    }
  }