본문 바로가기

나의 플랫폼/안드로이드

[Android] OnTouchListener에서 SingleTap 활용 하기

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

OnClickListener라는 좋은 리스너가 안드로이드에는 있지만,

RecyclerView나 ChildView가 있는 경우에 OnClickListener가 먹히지 않는 경우가 있다.


이럴 경우, setOnTouchListener를 이용하는데 

초창기에는 일일이 범위와 위치, 시간을 가지고 Click인지 체크하였지만

GestureDector가 나온 이후로 이런 고민은 빠이빠이 됐다.



...

gestureDetector = new GestureDetector(getActivity(), new SingleTapConfirm());
mCastContainer.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
// Single tap
}
return false;
}
});

...

private class SingleTapConfirm extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
}


이렇게 하면 SingleTap 상태인지 쉽게 확인 할 수가 있다.


중요한 부분은 onSingleTapUp 함수를 Override 해야 한다.

OnSingleTapConfirmed 라는 함수는 OnclickListener와 같은 역할을 하기 때문에 동작이 이루어 지지 않습니다.


참고하세요.


http://stackoverflow.com/a/19539206/3534559