使用"daimajia"的"AndroidSwipeLayout"库发行4.4以上版本(kitkat) - BackView从右侧滑动更多

Ang*_*ari 2 android android-layout

我使用了"daimajia" Android Swipe Layout中的 AndroidSwipeLayout库

虽然版本高于4.4 Kitkat,但它工作正常.滑动布局的后视图从右侧滑动更多..

请参阅以下4.4 kitkat及以上版本的附图

Android Swipe Layout适用于Android Ver.在Kitkat下面的4.2(软糖)

Android Swipe Layout适用于Android Ver. 在Kitkat下面的4.2(软糖)

Android Swipe Layout - backview从右侧滑动更多Android版本.4.4 Kitkat及以上

Android Swipe Layout  -  backview从右侧滑动更多Android版本. 4.4 Kitkat及以上

小智 7

我做了一些研究,发现拖曳距离有问题.现在我已经找到了解决方法.这导致奇怪的动画跳跃但最终backview将转到正确的位置.我会尽力找到更好的解决方案.

在"SwipeLayout"类中,我们需要修改"open"方法:

public void open(boolean smooth, boolean notify) {
    View surface = getSurfaceView(), bottom = getCurrentBottomView();
    if (surface == null) {
        return;
    }
    int dx, dy;
    Rect rect = computeSurfaceLayoutArea(true);
    // if (smooth) {
    // mDragHelper.smoothSlideViewTo(surface, rect.left, rect.top);
    // } else {
    dx = rect.left - surface.getLeft();
    dy = rect.top - surface.getTop();
    surface.layout(rect.left, rect.top, rect.right, rect.bottom);
    if (getShowMode() == ShowMode.PullOut) {
        Rect bRect = computeBottomLayoutAreaViaSurface(ShowMode.PullOut, rect);
        if (bottom != null) {
            bottom.layout(bRect.left, bRect.top, bRect.right, bRect.bottom);
        }
    }
    if (notify) {
        dispatchRevealEvent(rect.left, rect.top, rect.right, rect.bottom);
        dispatchSwipeEvent(rect.left, rect.top, dx, dy);
    } else {
        safeBottomView();
    }
    // }
    invalidate();
}
Run Code Online (Sandbox Code Playgroud)