문제

나는 게시물을 읽었습니다 : 그리드 레이아웃에서 제스처 검출 및 구현 제스처 탐지.그러나 나는 따르는 문제가있다. onfling () 가 발생한 후 onlistitemclick () 가 호출 중입니다.이 문제를 해결하는 방법은 무엇입니까?

도움이 되었습니까?

해결책 2

문제는 onfling () 방법에 있었다.이 방법 는 작동이 성공적으로 완료되면 true 를 반환해야합니다. 그렇지 않으면 onClickItemClicked () 를 호출합니다.

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
        float velocityX, float velocityY) {
    if (e2.getAction()!=MotionEvent.ACTION_UP){

        return false;
    }

    try {
        float diffAbs = Math.abs(e1.getY() - e2.getY());
        float diff = e1.getX() - e2.getX();

        if (diffAbs > SWIPE_MAX_OFF_PATH)
            return false;

        // Left swipe
        if (diff > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
            listener.onLeftSwipe();

            // Right swipe
        } else if (-diff > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
            listener.onRightSwipe();
        }
        return true;
    } catch (Exception e) {
    }
    return false;
}
.

다른 팁

시도 할 수 있습니다

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
   view.requestDisallowInterceptTouchEvent(true);
   .....
   view.requestDisallowInterceptTouchEvent(false);
}
.

도와줍니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top