Java Code Examples for android.support.v4.widget.ViewDragHelper#EDGE_TOP

The following examples show how to use android.support.v4.widget.ViewDragHelper#EDGE_TOP . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SwipeLayout.java    From FragmentRigger with MIT License 6 votes vote down vote up
@Override
public void onViewReleased(@NonNull View releasedChild, float xvel, float yvel) {
    final int childWidth = releasedChild.getWidth();
    final int childHeight = releasedChild.getHeight();

    int left = 0, top = 0;
    if ((mCurrentSwipeOrientation & ViewDragHelper.EDGE_LEFT) != 0) {
        left = xvel > 0 || xvel == 0 && mScrollPercent > SCROLL_FINISH_THRESHOLD ? (childWidth) : 0;
    } else if ((mCurrentSwipeOrientation & ViewDragHelper.EDGE_RIGHT) != 0) {
        left = xvel < 0 || xvel == 0 && mScrollPercent > SCROLL_FINISH_THRESHOLD ? -(childWidth) : 0;
    } else if ((mCurrentSwipeOrientation & ViewDragHelper.EDGE_TOP) != 0) {
        top = yvel < 0 || yvel == 0 && mScrollPercent > SCROLL_FINISH_THRESHOLD ? (childHeight) : 0;
    } else if ((mCurrentSwipeOrientation & ViewDragHelper.EDGE_BOTTOM) != 0) {
        top = yvel < 0 || yvel == 0 && mScrollPercent > SCROLL_FINISH_THRESHOLD ? -(childHeight) : 0;
    }

    mDragHelper.settleCapturedViewAt(left, top);
    invalidate();
}
 
Example 2
Source File: SwipeRevealLayout.java    From SwipeRevealLayout with MIT License 6 votes vote down vote up
@Override
public void onEdgeDragStarted(int edgeFlags, int pointerId) {
    super.onEdgeDragStarted(edgeFlags, pointerId);

    if (mLockDrag) {
        return;
    }

    boolean edgeStartLeft = (mDragEdge == DRAG_EDGE_RIGHT)
            && edgeFlags == ViewDragHelper.EDGE_LEFT;

    boolean edgeStartRight = (mDragEdge == DRAG_EDGE_LEFT)
            && edgeFlags == ViewDragHelper.EDGE_RIGHT;

    boolean edgeStartTop = (mDragEdge == DRAG_EDGE_BOTTOM)
            && edgeFlags == ViewDragHelper.EDGE_TOP;

    boolean edgeStartBottom = (mDragEdge == DRAG_EDGE_TOP)
            && edgeFlags == ViewDragHelper.EDGE_BOTTOM;

    if (edgeStartLeft || edgeStartRight || edgeStartTop || edgeStartBottom) {
        mDragHelper.captureChildView(mMainView, pointerId);
    }
}
 
Example 3
Source File: SwipeLayout.java    From FragmentRigger with MIT License 5 votes vote down vote up
@Override
public boolean tryCaptureView(@NonNull View child, int pointerId) {
    if (!mIsEnable || mEdgeFlag == EDGE_FLAG_NONE) {
        return false;
    }
    boolean dragEnable = mDragHelper.isEdgeTouched(mEdgeFlag, pointerId);
    if (dragEnable) {
        if (mDragHelper.isEdgeTouched(ViewDragHelper.EDGE_LEFT, pointerId)) {
            mCurrentSwipeOrientation = ViewDragHelper.EDGE_LEFT;
        } else if (mDragHelper.isEdgeTouched(ViewDragHelper.EDGE_RIGHT, pointerId)) {
            mCurrentSwipeOrientation = ViewDragHelper.EDGE_RIGHT;
        } else if (mDragHelper.isEdgeTouched(ViewDragHelper.EDGE_TOP, pointerId)) {
            mCurrentSwipeOrientation = ViewDragHelper.EDGE_TOP;
        } else if (mDragHelper.isEdgeTouched(ViewDragHelper.EDGE_BOTTOM, pointerId)) {
            mCurrentSwipeOrientation = ViewDragHelper.EDGE_BOTTOM;
        } else {
            mCurrentSwipeOrientation = -1;
        }
    }
    if (mOnSwipeChangedListener != null) {
        SwipeEdge swipeEdge = null;
        if ((mCurrentSwipeOrientation & ViewDragHelper.EDGE_LEFT) != 0) {
            swipeEdge = SwipeEdge.LEFT;
        } else if ((mCurrentSwipeOrientation & ViewDragHelper.EDGE_RIGHT) != 0) {
            swipeEdge = SwipeEdge.RIGHT;
        } else if ((mCurrentSwipeOrientation & ViewDragHelper.EDGE_TOP) != 0) {
            swipeEdge = SwipeEdge.TOP;
        } else if ((mCurrentSwipeOrientation & ViewDragHelper.EDGE_BOTTOM) != 0) {
            swipeEdge = SwipeEdge.BOTTOM;
        }
        if (swipeEdge != null) {
            mOnSwipeChangedListener.onEdgeTouched(SwipeLayout.this, swipeEdge, mPuppetHost);
        }
    }
    return dragEnable;
}
 
Example 4
Source File: SwipeLayout.java    From FragmentRigger with MIT License 5 votes vote down vote up
@Override
public int clampViewPositionVertical(@NonNull View child, int top, int dy) {
    int ret = 0;
    if (canSwipe(SwipeEdge.TOP) && (mCurrentSwipeOrientation & ViewDragHelper.EDGE_TOP) != 0) {
        ret = Math.min(child.getHeight(), Math.max(top, 0));
    } else if (canSwipe(SwipeEdge.BOTTOM) && (mCurrentSwipeOrientation & ViewDragHelper.EDGE_BOTTOM) != 0) {
        ret = Math.min(0, Math.max(top, -child.getHeight()));
    }
    return ret;
}
 
Example 5
Source File: SwipeLayout.java    From FragmentRigger with MIT License 5 votes vote down vote up
private void drawShadow(@NonNull Canvas canvas, @NonNull View child) {
    if (mShadowDrawables == null || mShadowDrawables.length == 0) {
        return;
    }
    final Rect childRect = mTmpRect;
    child.getHitRect(childRect);

    if ((mCurrentSwipeOrientation & ViewDragHelper.EDGE_LEFT) != 0) {
        drawShadowChild(canvas, mShadowDrawables[0], childRect.left - mShadowWidth,
                childRect.top, childRect.left, childRect.bottom);
    } else if ((mCurrentSwipeOrientation & ViewDragHelper.EDGE_RIGHT) != 0) {
        if (mShadowDrawables.length > 1) {
            drawShadowChild(canvas, mShadowDrawables[1], childRect.right,
                    childRect.top, childRect.right + mShadowWidth, childRect.bottom);
        }
    } else if ((mCurrentSwipeOrientation & ViewDragHelper.EDGE_TOP) != 0) {
        if (mShadowDrawables.length > 2) {
            drawShadowChild(canvas, mShadowDrawables[2], childRect.left,
                    childRect.top - mShadowWidth, childRect.right, childRect.top);
        }
    } else if ((mCurrentSwipeOrientation & ViewDragHelper.EDGE_BOTTOM) != 0) {
        if (mShadowDrawables.length > 3) {
            drawShadowChild(canvas, mShadowDrawables[3], childRect.left,
                    childRect.bottom, childRect.right, childRect.bottom + mShadowWidth);
        }
    }
}
 
Example 6
Source File: SwipeLayout.java    From FragmentRigger with MIT License 5 votes vote down vote up
private void computeScroll(@Nullable View view) {
    if (view == null) {
        return;
    }
    view.setX(0);
    view.setY(0);
    View capturedView = mDragHelper.getCapturedView();
    if (capturedView == null) {
        return;
    }
    int xOffset = 0;
    int yOffset = 0;
    switch (mCurrentSwipeOrientation) {
        case ViewDragHelper.EDGE_LEFT:
            xOffset = (capturedView.getLeft() - getWidth());
            break;
        case ViewDragHelper.EDGE_RIGHT:
            xOffset = (capturedView.getLeft() + getWidth());
            break;
        case ViewDragHelper.EDGE_TOP:
            yOffset = (capturedView.getTop() - getHeight());
            break;
        case ViewDragHelper.EDGE_BOTTOM:
            yOffset = (capturedView.getTop() + getHeight());
            break;
    }
    if (mParallaxOffset >= 0) {
        xOffset *= mScrimOpacity * mParallaxOffset;
        yOffset *= mScrimOpacity * mParallaxOffset;
    }
    view.setX(xOffset);
    view.setY(yOffset);
}
 
Example 7
Source File: SwipeLayout.java    From FragmentRigger with MIT License 4 votes vote down vote up
public void setSwipeEdgeSide(SwipeEdge[] swipeEdgeSide) {
    if (swipeEdgeSide == null || swipeEdgeSide.length == 0) {
        mSwipeEdgeSide = new ArrayList<>();
        setEnableSwipe(false);
        return;
    }
    mSwipeEdgeSide = Arrays.asList(swipeEdgeSide);
    for (SwipeEdge edge : mSwipeEdgeSide) {
        if (edge == SwipeEdge.NONE) {
            if (swipeEdgeSide.length > 1) {
                throw new IllegalArgumentException("The Swiper#edgeSide can not contain other value as" +
                        " the SwipeEdge.NONE is contained.");
            }
            setEnableSwipe(false);
            return;
        } else if (edge == SwipeEdge.ALL) {
            if (swipeEdgeSide.length > 1) {
                throw new IllegalArgumentException("The Swiper#edgeSide can not contain other value as" +
                        " the SwipeEdge.ALL is contained.");
            }
        }
    }
    setEnableSwipe(true);

    if (canSwipe(SwipeEdge.NONE)) {
        mEdgeFlag = EDGE_FLAG_NONE;
        return;
    }
    if (canSwipe(SwipeEdge.ALL)) {
        mEdgeFlag = ViewDragHelper.EDGE_ALL;
        return;
    }
    mEdgeFlag = EDGE_FLAG_NONE;
    if (canSwipe(SwipeEdge.LEFT)) {
        if (mEdgeFlag > 0) {
            mEdgeFlag |= ViewDragHelper.EDGE_LEFT;
        } else {
            mEdgeFlag = ViewDragHelper.EDGE_LEFT;
        }
    }
    if (canSwipe(SwipeEdge.RIGHT)) {
        if (mEdgeFlag > 0) {
            mEdgeFlag |= ViewDragHelper.EDGE_RIGHT;
        } else {
            mEdgeFlag = ViewDragHelper.EDGE_RIGHT;
        }
    }
    if (canSwipe(SwipeEdge.TOP)) {
        if (mEdgeFlag > 0) {
            mEdgeFlag |= ViewDragHelper.EDGE_TOP;
        } else {
            mEdgeFlag = ViewDragHelper.EDGE_TOP;
        }
    }
    if (canSwipe(SwipeEdge.BOTTOM)) {
        if (mEdgeFlag > 0) {
            mEdgeFlag |= ViewDragHelper.EDGE_BOTTOM;
        } else {
            mEdgeFlag = ViewDragHelper.EDGE_BOTTOM;
        }
    }
}