@Override public boolean fling(int velocityX, int velocityY) { velocityX = solveVelocity(velocityX); velocityY = solveVelocity(velocityY); return super.fling(velocityX, velocityY); }
public static void fling(View scrollableView, int velocity) { if (scrollableView instanceof ScrollView) { ((ScrollView) scrollableView).fling(velocity); } else if (scrollableView instanceof AbsListView) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { ((AbsListView) scrollableView).fling(velocity); } } else if (scrollableView instanceof WebView) { ((WebView) scrollableView).flingScroll(0, velocity); } else if (scrollableView instanceof NestedScrollView) { ((NestedScrollView) scrollableView).fling(velocity); } else if (scrollableView instanceof RecyclerView) { ((RecyclerView) scrollableView).fling(0, velocity); } } }
/** * Slows down usual fling gesture for RecyclerView. */ @Override public boolean fling(int velocityX, int velocityY) { velocityX *= FLING_GESTURE_VELOCITY_SCALE_DOWN_FACTOR; return super.fling(velocityX, velocityY); }
@Override public boolean fling(int velocityX, int velocityY) { return mIsFlingAble ? super.fling(velocityX, velocityY) : false; } }
/** * Slows down usual fling gesture for RecyclerView. */ @Override public boolean fling(int velocityX, int velocityY) { velocityY *= FLING_GESTURE_VELOCITY_SCALE_DOWN_FACTOR; return super.fling(velocityX, velocityY); }
@Override public boolean fling(int velocityX, int velocityY) { if (velocityX > maxFlingVelocity) { velocityX = maxFlingVelocity; } if (velocityX < -maxFlingVelocity) { velocityX = (-maxFlingVelocity); } return super.fling(velocityX, velocityY); }
@Override public boolean fling(int velocityX, int velocityY) { velocityX *= 0.8; return super.fling(velocityX, velocityY); }
@Override public boolean fling(int velocityX, int velocityY) { double FLING_SCALE_DOWN_FACTOR = 0.8; if(direction==Constants.DIRECTION.VERTICAL){ velocityY *= FLING_SCALE_DOWN_FACTOR; }else{ velocityX *= FLING_SCALE_DOWN_FACTOR; } return super.fling(velocityX, velocityY); } }
@Override public void callBackVelocity(int velocity) { if (recyclerRoot != null) { recyclerRoot.fling(0, velocity); } } });
@Override public boolean fling(int velocityX, int velocityY) { if( velocityX > 8000 ){ velocityX *= 0.5; } if( velocityY > 8000 ){ velocityY *= 0.5; } if( mFlingCount != 0 ){ if( velocityX > mFlingCount || velocityX < -mFlingCount ){ if( velocityX < 0 ){ velocityX = -mFlingCount; } else { velocityX = mFlingCount; } } if( velocityY > mFlingCount || velocityY < -mFlingCount ){ if( velocityY < 0 ){ velocityY = -mFlingCount; } else { velocityY = mFlingCount; } } } return super.fling(velocityX, velocityY); }
@Override public boolean fling(int velocityX, int velocityY) { boolean isFlinging = super.fling((int) (velocityX * mFlingFriction), (int) (velocityY * mFlingFriction)); if (isFlinging) { adjustPositionWithVelocity((int) (velocityX * mFlingFriction), (int) (velocityY * mFlingFriction)); } return isFlinging; }
/** */ @Override public boolean fling(int velocityX, int velocityY) { return super.fling(overrideFlingVelocity(velocityX), overrideFlingVelocity(velocityY)); }
/** */ @Override public boolean fling(int velocityX, int velocityY) { return super.fling(overrideFlingVelocity(velocityX), overrideFlingVelocity(velocityY)); }
@Override public boolean fling(int velocityX, int velocityY) { velocityX = solveVelocity(velocityX); velocityY = solveVelocity(velocityY); return super.fling(velocityX, velocityY); }
@Override public boolean fling(int velocityX, int velocityY) { boolean isFling = super.fling(velocityX, velocityY); if (isFling) { layoutManager.onFling(velocityX, velocityY); } else { layoutManager.returnToCurrentPosition(); } return isFling; }
@Override public boolean fling(int velocityX, int velocityY) { boolean flinging = super.fling((int) (velocityX * mFlingFactor), (int) (velocityY * mFlingFactor)); if (flinging) { if (getLayoutManager().canScrollHorizontally()) { adjustPositionX(velocityX); } else { adjustPositionY(velocityY); } } if (DEBUG) { Log.d("@", "velocityX:" + velocityX); Log.d("@", "velocityY:" + velocityY); } return flinging; }
@Override public boolean fling(int velocityX, int velocityY) { boolean flinging = super.fling((int) (velocityX * mFlingFactor), (int) (velocityY * mFlingFactor)); if (flinging) { if (getLayoutManager().canScrollHorizontally()) { adjustPositionX(velocityX); } else { adjustPositionY(velocityY); } } if (DEBUG) { Log.d("@", "velocityX:" + velocityX); Log.d("@", "velocityY:" + velocityY); } return flinging; }
@Override public boolean fling(int velocityX, int velocityY) { if(Math.abs(orientation == VERTICAL ? velocityY : velocityX) < flingThreshold) { int centerViewPosition = calculateSnapViewPosition(); smoothScrollToPosition(centerViewPosition); if(getListener() != null) { getListener().onPositionChange(centerViewPosition); } return true; } else { return super.fling(velocityX, velocityY); } }
@SuppressLint("NewApi") public void smoothScrollBy(int velocityY, int distance, int duration) { View scrollableView = getScrollableView(); if (scrollableView instanceof AbsListView) { AbsListView absListView = (AbsListView) scrollableView; if (sysVersion >= 21) { absListView.fling(velocityY); } else { absListView.smoothScrollBy(distance, duration); } } else if (scrollableView instanceof ScrollView) { ((ScrollView) scrollableView).fling(velocityY); } else if (scrollableView instanceof RecyclerView) { ((RecyclerView) scrollableView).fling(0, velocityY); } else if (scrollableView instanceof WebView) { ((WebView)scrollableView).flingScroll(0,velocityY); } } }
/** * 将特定的view按照初始条件滚动 * * @param velocityY 初始滚动速度 * @param distance 需要滚动的距离 * @param duration 允许滚动的时间 */ @SuppressLint("NewApi") public void smoothScrollBy(int velocityY, int distance, int duration) { View scrollableView = getScrollableView(); if (scrollableView instanceof AbsListView) { AbsListView absListView = (AbsListView) scrollableView; if (sysVersion >= 21) { absListView.fling(velocityY); } else { absListView.smoothScrollBy(distance, duration); } } else if (scrollableView instanceof ScrollView) { ((ScrollView) scrollableView).fling(velocityY); } else if (scrollableView instanceof RecyclerView) { ((RecyclerView) scrollableView).fling(0, velocityY); } else if (scrollableView instanceof WebView) { ((WebView) scrollableView).flingScroll(0, velocityY); } } }