// {@link ScrollViewWithNotified#ScrollListener} methods. @Override public void notifyScrollChanged( final int scrollX, final int scrollY, final int oldX, final int oldY) { if (PAGINATION) { mScroller.forceFinished(true /* finished */); mScrollView.removeCallbacks(mScrollTask); final int currentTop = mScrollView.getScrollY(); final int pageHeight = getKeyboard().mBaseHeight; final int lastPageNo = currentTop / pageHeight; final int lastPageTop = lastPageNo * pageHeight; final int nextPageNo = lastPageNo + 1; final int nextPageTop = Math.min(nextPageNo * pageHeight, getHeight() - pageHeight); final int scrollTo = (currentTop - lastPageTop) < (nextPageTop - currentTop) ? lastPageTop : nextPageTop; final int deltaY = scrollTo - currentTop; mScroller.startScroll(0, currentTop, 0, deltaY, 300); mScrollView.post(mScrollTask); } }
public void setScrollView(final ScrollViewWithNotifier scrollView) { mScrollView = scrollView; scrollView.setScrollListener(this); }