code: protected void adjustPositionX(int velocityX) {
          int childCount = getChildCount();
          if (childCount > 0) {
              int curPosition = ViewUtils.getCenterXChildPosition(this);
              int childWidth = getWidth() - getPaddingLeft() - getPaddingRight();
              int flingCount = getFlingCount(velocityX, childWidth);
              int targetPosition = curPosition + flingCount;
              if (mSinglePageFling) {
                  flingCount = Math.max(-1, Math.min(1, flingCount));
                  targetPosition = flingCount == 0 ? curPosition : mPositionOnTouchDown + flingCount;
                  if (DEBUG) {
                      Log.d("RecyclerViewPager", "flingCount:" + flingCount);
                      Log.d("RecyclerViewPager", "original targetPosition:" + targetPosition);
                  }
              }
              targetPosition = Math.max(targetPosition, 0);
              targetPosition = Math.min(targetPosition, mViewPagerAdapter.getItemCount() - 1);
              if (targetPosition == curPosition
                      && ((mSinglePageFling && mPositionOnTouchDown == curPosition)
                      || !mSinglePageFling)) {
                  View centerXChild = ViewUtils.getCenterXChild(this);
                  if (centerXChild != null) {
                      if (mTouchSpan > centerXChild.getWidth() * mTriggerOffset * mTriggerOffset && targetPosition != 0) {
                          targetPosition--;
                      } else if (mTouchSpan < centerXChild.getWidth() * -mTriggerOffset && targetPosition != mViewPagerAdapter.getItemCount() - 1) {
                          targetPosition++;
                      }
                  }
              }
              if (DEBUG) {
                  Log.d("RecyclerViewPager", "mTouchSpan:" + mTouchSpan);
                  Log.d("RecyclerViewPager", "adjustPositionX:" + targetPosition);
              }
              smoothScrollToPosition(safeTargetPosition(targetPosition, mViewPagerAdapter.getItemCount()));
          }
      }
docs: *
  adjust position before Touch event complete and fling action start.