@Override public boolean isInAbsoluteEnd() { return !mRecyclerView.canScrollHorizontally(1); } }
@Override public boolean isInAbsoluteStart() { return !mRecyclerView.canScrollHorizontally(-1); }
@Override public boolean isInAbsoluteStart() { return !mRecyclerView.canScrollHorizontally(-1); }
@Override public boolean isInAbsoluteEnd() { return !mRecyclerView.canScrollHorizontally(1); } }
/** * 是否触发了 从右到左滑动 * * @param distance 滑动距离 * @return true or false */ public boolean isLeftScrollTriggered(float distance) { return mRecyclerView.canScrollHorizontally(mOrientation) && distance <= 0 && Math.abs(distance) >= mHorizontalSlidingThreshold; }
/** * 是否触发了 从左到右滑动 * * @param distance 滑动距离 * @return true or false */ public boolean isRightScrollTriggered(float distance) { return mRecyclerView.canScrollHorizontally(mOrientation) && distance >= 0 && Math.abs(distance) >= mHorizontalSlidingThreshold; }
@Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); try { if (getLayoutManagerOrientation() && !recyclerView.canScrollVertically(1)) { getPresenter().checkAndLoadNextPageData(); } else if (!getLayoutManagerOrientation() && !recyclerView.canScrollHorizontally(1)) { getPresenter().checkAndLoadNextPageData(); } } catch (Exception e) { } } });
if (!mHorizontalRecyclerView.canScrollHorizontally(-1) || mHorizontalRecyclerView.getTranslationX() < 0) { float transX = mDeltaX + mHorizontalRecyclerView.getTranslationX(); if (mHorizontalRecyclerView.canScrollHorizontally(-1) && transX >= 0) { transX = 0; if (!mHorizontalRecyclerView.canScrollHorizontally(1) || mHorizontalRecyclerView.getTranslationX() > 0) { float transX = mDeltaX + mHorizontalRecyclerView.getTranslationX(); if (transX <= 0 && mHorizontalRecyclerView.canScrollHorizontally(1)) { transX = 0;
@Override public void run() { float translation = (isVertical() ? mRecyclerView.getTranslationY() : mRecyclerView.getTranslationX()); float fraction = MathUtils.clamp(Math.abs((translation / getDragThreshold())), 0f, 1f); int scroll = (int) (0f - translation * Math.pow(fraction, SCROLL_EXPONENT)); if (Math.abs(scroll) > 0 && (isVertical() && mRecyclerView.canScrollVertically(scroll) || !isVertical() && mRecyclerView.canScrollHorizontally(scroll))) { if (mScrollCallbacks != null) mScrollCallbacks.onScrolled((translation > 0 ? 1f : -1) * fraction); mRecyclerView.scrollBy(isVertical() ? 0 : scroll, isVertical() ? scroll : 0); } mRecyclerView.post(mScrollByRunnable); } };
if (isVertical() && mRecyclerView.canScrollVertically(direction) || !isVertical() && mRecyclerView.canScrollHorizontally(direction)) mRecyclerView.post(mScrollByRunnable); return true;