@Override public void scrollToPage(int page) { activePage = page; int onePageWidth = getMeasuredWidth(); int scrollTo = page * onePageWidth; smoothScrollTo(scrollTo, 0); if (pageChangedListener != null) pageChangedListener.onPageChanged(this, page); }
public void snapToScreen(int whichScreen) { whichScreen = Math.max(0, Math.min(whichScreen, getChildCount() - 1)); if (getScrollX() != (whichScreen * getWidth())) { final int delta = whichScreen * getWidth() - getScrollX(); int duration = Math.abs(delta) * 2; int num = getWidth() * 2; mScroller.startScroll(getScrollX(), 0, delta, 0, duration > num ? num : duration); if (mCurScreen != whichScreen) { mCurScreen = whichScreen; isNotifyChanged = true; } if (mListener != null) { mListener.onPageChanged(mCurScreen); } invalidate(); // Redraw the layout } else { if (mListener != null) { mListener.onPageChanged(mCurScreen); } } }