List of usage examples for android.support.v4.view ViewCompat setOverScrollMode
public static void setOverScrollMode(View v, int overScrollMode)
From source file:vc908.stickerfactory.ui.advancedrecyclerview.draggable.RecyclerViewDragDropManager.java
private void finishDragging(boolean result) { final RecyclerView.ViewHolder draggedItem = mDraggingItem; if (draggedItem == null) { result = false;/*from w ww. j av a 2s.c o m*/ } // cancel deferred request if (mDeferredCancelProcess != null) { mRecyclerView.removeCallbacks(mDeferredCancelProcess); mDeferredCancelProcess = null; } // NOTE: setOverScrollMode() have to be called before calling removeItemDecoration() if (mRecyclerView != null && mDraggingItem != null) { ViewCompat.setOverScrollMode(mRecyclerView, mOrigOverScrollMode); } if (mDraggingItemDecorator != null) { mDraggingItemDecorator .setReturnToDefaultPositionAnimationDuration(mItemSettleBackIntoPlaceAnimationDuration); mDraggingItemDecorator .setReturnToDefaultPositionAnimationInterpolator(mItemSettleBackIntoPlaceAnimationInterpolator); mDraggingItemDecorator.finish(true); } if (mSwapTargetItemOperator != null) { mSwapTargetItemOperator .setReturnToDefaultPositionAnimationDuration(mItemSettleBackIntoPlaceAnimationDuration); mDraggingItemDecorator .setReturnToDefaultPositionAnimationInterpolator(mItemSettleBackIntoPlaceAnimationInterpolator); mSwapTargetItemOperator.finish(true); } if (mEdgeEffectDecorator != null) { mEdgeEffectDecorator.releaseBothGlows(); } stopScrollOnDraggingProcess(); if (mRecyclerView != null && mRecyclerView.getParent() != null) { mRecyclerView.getParent().requestDisallowInterceptTouchEvent(false); } mDraggableRange = null; mDraggingItemDecorator = null; mSwapTargetItemOperator = null; mDraggingItem = null; mDraggingItemId = RecyclerView.NO_ID; mLastTouchY = 0; mDragStartTouchY = 0; mDragMinTouchY = 0; mDragMaxTouchY = 0; mGrabbedPositionY = 0; mGrabbedItemHeight = 0; // raise onDragItemFinished() event if (mAdapter != null) { mAdapter.onDragItemFinished(draggedItem, result); } // if (draggedItem != null) { // draggedItem.setIsRecyclable(true); // } }
From source file:com.h6ah4i.android.widget.advrecyclerview.draggable.RecyclerViewDragDropManager.java
@SuppressWarnings("unchecked") private void startDragging(RecyclerView rv, MotionEvent e, RecyclerView.ViewHolder holder, ItemDraggableRange range) {/*ww w . j a v a 2 s. c o m*/ safeEndAnimation(rv, holder); mHandler.cancelLongPressDetection(); mDraggingItemInfo = new DraggingItemInfo(holder, mLastTouchX, mLastTouchY); mDraggingItemViewHolder = holder; // XXX if setIsRecyclable() is used, another view holder objects will be created // which has the same ID with currently dragging item... Not works as expected. // holder.setIsRecyclable(false); mDraggableRange = range; mOrigOverScrollMode = ViewCompat.getOverScrollMode(rv); ViewCompat.setOverScrollMode(rv, ViewCompat.OVER_SCROLL_NEVER); mLastTouchX = (int) (e.getX() + 0.5f); mLastTouchY = (int) (e.getY() + 0.5f); // disable auto scrolling until user moves the item mDragStartTouchY = mDragMinTouchY = mDragMaxTouchY = mLastTouchY; mDragStartTouchX = mDragMinTouchX = mDragMaxTouchX = mLastTouchX; mScrollDirMask = SCROLL_DIR_NONE; mRecyclerView.getParent().requestDisallowInterceptTouchEvent(true); startScrollOnDraggingProcess(); // raise onDragItemStarted() event mAdapter.onDragItemStarted(mDraggingItemInfo, holder, mDraggableRange); // setup decorators mAdapter.onBindViewHolder(holder, holder.getLayoutPosition()); mDraggingItemDecorator = new DraggingItemDecorator(mRecyclerView, holder, mDraggableRange); mDraggingItemDecorator.setShadowDrawable(mShadowDrawable); mDraggingItemDecorator.start(e, mDraggingItemInfo); int layoutType = CustomRecyclerViewUtils.getLayoutType(mRecyclerView); if (supportsViewTranslation() && (layoutType == CustomRecyclerViewUtils.LAYOUT_TYPE_LINEAR_VERTICAL || layoutType == CustomRecyclerViewUtils.LAYOUT_TYPE_LINEAR_HORIZONTAL)) { mSwapTargetItemOperator = new SwapTargetItemOperator(mRecyclerView, holder, mDraggableRange, mDraggingItemInfo); mSwapTargetItemOperator.setSwapTargetTranslationInterpolator(mSwapTargetTranslationInterpolator); mSwapTargetItemOperator.start(); mSwapTargetItemOperator.update(mDraggingItemDecorator.getDraggingItemTranslationX(), mDraggingItemDecorator.getDraggingItemTranslationY()); } if (mEdgeEffectDecorator != null) { mEdgeEffectDecorator.reorderToTop(); } if (mItemDragEventListener != null) { mItemDragEventListener.onItemDragStarted(mAdapter.getDraggingItemInitialPosition()); } }
From source file:com.github.shareme.gwsmaterialuikit.library.advancerv.draggable.RecyclerViewDragDropManager.java
@SuppressWarnings("unchecked") private void startDragging(RecyclerView rv, MotionEvent e, RecyclerView.ViewHolder holder, ItemDraggableRange range) {//w w w. j av a 2 s.co m safeEndAnimation(rv, holder); mHandler.cancelLongPressDetection(); mDraggingItemInfo = new DraggingItemInfo(rv, holder, mLastTouchX, mLastTouchY); mDraggingItemViewHolder = holder; // XXX if setIsRecyclable() is used, another view holder objects will be created // which has the same ID with currently dragging item... Not works as expected. // holder.setIsRecyclable(false); mDraggableRange = range; mOrigOverScrollMode = ViewCompat.getOverScrollMode(rv); ViewCompat.setOverScrollMode(rv, ViewCompat.OVER_SCROLL_NEVER); mLastTouchX = (int) (e.getX() + 0.5f); mLastTouchY = (int) (e.getY() + 0.5f); // disable auto scrolling until user moves the item mDragStartTouchY = mDragMinTouchY = mDragMaxTouchY = mLastTouchY; mDragStartTouchX = mDragMinTouchX = mDragMaxTouchX = mLastTouchX; mScrollDirMask = SCROLL_DIR_NONE; mRecyclerView.getParent().requestDisallowInterceptTouchEvent(true); startScrollOnDraggingProcess(); // raise onDragItemStarted() event mAdapter.onDragItemStarted(mDraggingItemInfo, holder, mDraggableRange); // setup decorators mAdapter.onBindViewHolder(holder, holder.getLayoutPosition()); mDraggingItemDecorator = new DraggingItemDecorator(mRecyclerView, holder, mDraggableRange); mDraggingItemDecorator.setShadowDrawable(mShadowDrawable); mDraggingItemDecorator.start(e, mDraggingItemInfo); final int layoutType = CustomRecyclerViewUtils.getLayoutType(mRecyclerView); if (supportsViewTranslation() && !mCheckCanDrop && (layoutType == CustomRecyclerViewUtils.LAYOUT_TYPE_LINEAR_VERTICAL || layoutType == CustomRecyclerViewUtils.LAYOUT_TYPE_LINEAR_HORIZONTAL)) { mSwapTargetItemOperator = new SwapTargetItemOperator(mRecyclerView, holder, mDraggableRange, mDraggingItemInfo); mSwapTargetItemOperator.setSwapTargetTranslationInterpolator(mSwapTargetTranslationInterpolator); mSwapTargetItemOperator.start(); mSwapTargetItemOperator.update(mDraggingItemDecorator.getDraggingItemTranslationX(), mDraggingItemDecorator.getDraggingItemTranslationY()); } if (mEdgeEffectDecorator != null) { mEdgeEffectDecorator.reorderToTop(); } if (mItemDragEventListener != null) { mItemDragEventListener.onItemDragStarted(mAdapter.getDraggingItemInitialPosition()); mItemDragEventListener.onItemDragMoveDistanceUpdated(0, 0); } }
From source file:com.h6ah4i.android.widget.advrecyclerview.draggable.RecyclerViewDragDropManager.java
private void finishDragging(boolean result) { // RecyclerView.ViewHolder draggedItem = mDraggingItemViewHolder; if (!isDragging()) { return;/*from w ww . j av a 2 s .c om*/ } // cancel deferred request mHandler.removeDeferredCancelDragRequest(); // NOTE: setOverScrollMode() have to be called before calling removeItemDecoration() if (mRecyclerView != null && mDraggingItemViewHolder != null) { ViewCompat.setOverScrollMode(mRecyclerView, mOrigOverScrollMode); } if (mDraggingItemDecorator != null) { mDraggingItemDecorator .setReturnToDefaultPositionAnimationDuration(mItemSettleBackIntoPlaceAnimationDuration); mDraggingItemDecorator .setReturnToDefaultPositionAnimationInterpolator(mItemSettleBackIntoPlaceAnimationInterpolator); mDraggingItemDecorator.finish(true); } if (mSwapTargetItemOperator != null) { mSwapTargetItemOperator .setReturnToDefaultPositionAnimationDuration(mItemSettleBackIntoPlaceAnimationDuration); mDraggingItemDecorator .setReturnToDefaultPositionAnimationInterpolator(mItemSettleBackIntoPlaceAnimationInterpolator); mSwapTargetItemOperator.finish(true); } if (mEdgeEffectDecorator != null) { mEdgeEffectDecorator.releaseBothGlows(); } stopScrollOnDraggingProcess(); if (mRecyclerView != null && mRecyclerView.getParent() != null) { mRecyclerView.getParent().requestDisallowInterceptTouchEvent(false); } if (mRecyclerView != null) { mRecyclerView.invalidate(); } mDraggableRange = null; mDraggingItemDecorator = null; mSwapTargetItemOperator = null; mDraggingItemViewHolder = null; mDraggingItemInfo = null; mLastTouchX = 0; mLastTouchY = 0; mDragStartTouchX = 0; mDragStartTouchY = 0; mDragMinTouchX = 0; mDragMinTouchY = 0; mDragMaxTouchX = 0; mDragMaxTouchY = 0; mCanDragH = false; mCanDragV = false; int draggingItemInitialPosition = RecyclerView.NO_POSITION; int draggingItemCurrentPosition = RecyclerView.NO_POSITION; // raise onDragItemFinished() event if (mAdapter != null) { draggingItemInitialPosition = mAdapter.getDraggingItemInitialPosition(); draggingItemCurrentPosition = mAdapter.getDraggingItemCurrentPosition(); mAdapter.onDragItemFinished(result); } // if (draggedItem != null) { // draggedItem.setIsRecyclable(true); // } if (mItemDragEventListener != null) { mItemDragEventListener.onItemDragFinished(draggingItemInitialPosition, draggingItemCurrentPosition, result); } }
From source file:com.github.shareme.gwsmaterialuikit.library.advancerv.draggable.RecyclerViewDragDropManager.java
private void finishDragging(boolean result) { // RecyclerView.ViewHolder draggedItem = mDraggingItemViewHolder; if (!isDragging()) { return;//from w w w. j a va 2s . c om } // cancel deferred request if (mHandler != null) { mHandler.removeDeferredCancelDragRequest(); } // NOTE: setOverScrollMode() have to be called before calling removeItemDecoration() if (mRecyclerView != null && mDraggingItemViewHolder != null) { ViewCompat.setOverScrollMode(mRecyclerView, mOrigOverScrollMode); } if (mDraggingItemDecorator != null) { mDraggingItemDecorator .setReturnToDefaultPositionAnimationDuration(mItemSettleBackIntoPlaceAnimationDuration); mDraggingItemDecorator .setReturnToDefaultPositionAnimationInterpolator(mItemSettleBackIntoPlaceAnimationInterpolator); mDraggingItemDecorator.finish(true); } if (mSwapTargetItemOperator != null) { mSwapTargetItemOperator .setReturnToDefaultPositionAnimationDuration(mItemSettleBackIntoPlaceAnimationDuration); mDraggingItemDecorator .setReturnToDefaultPositionAnimationInterpolator(mItemSettleBackIntoPlaceAnimationInterpolator); mSwapTargetItemOperator.finish(true); } if (mEdgeEffectDecorator != null) { mEdgeEffectDecorator.releaseBothGlows(); } stopScrollOnDraggingProcess(); if (mRecyclerView != null && mRecyclerView.getParent() != null) { mRecyclerView.getParent().requestDisallowInterceptTouchEvent(false); } if (mRecyclerView != null) { mRecyclerView.invalidate(); } mDraggableRange = null; mDraggingItemDecorator = null; mSwapTargetItemOperator = null; mDraggingItemViewHolder = null; mDraggingItemInfo = null; mLastTouchX = 0; mLastTouchY = 0; mDragStartTouchX = 0; mDragStartTouchY = 0; mDragMinTouchX = 0; mDragMinTouchY = 0; mDragMaxTouchX = 0; mDragMaxTouchY = 0; mDragScrollDistanceX = 0; mDragScrollDistanceY = 0; mCanDragH = false; mCanDragV = false; int draggingItemInitialPosition = RecyclerView.NO_POSITION; int draggingItemCurrentPosition = RecyclerView.NO_POSITION; // raise onDragItemFinished() event if (mAdapter != null) { draggingItemInitialPosition = mAdapter.getDraggingItemInitialPosition(); draggingItemCurrentPosition = mAdapter.getDraggingItemCurrentPosition(); mAdapter.onDragItemFinished(result); } // if (draggedItem != null) { // draggedItem.setIsRecyclable(true); // } if (mItemDragEventListener != null) { mItemDragEventListener.onItemDragFinished(draggingItemInitialPosition, draggingItemCurrentPosition, result); } }