Android Catch the swipe gesture
사용 버전: Android Studio 4.1.1
사용 언어: Kotlin 1.4.20
안드로이드에서 손가락으로 화면을 왼쪽에서 오른쪽으로 긋거나, 오른쪽에서 왼쪽으로 그으면 그에 따라 화면이 변화하는 것을 해보겠습니다.
Swipe gesture가 적용이 안된 모습입니다.
사용 언어: Kotlin 1.4.20
안드로이드 Catch the swipe gesture를 해보겠습니다.
안드로이드에서 손가락으로 화면을 왼쪽에서 오른쪽으로 긋거나, 오른쪽에서 왼쪽으로 그으면 그에 따라 화면이 변화하는 것을 해보겠습니다.
Swipe gesture가 적용이 안된 모습입니다.
오른쪽에서 왼쪽으로 움직여도 아무런 반응이 없습니다.
변수 gesture를 만들고 GestureDetector()를 선언합니다.
onFling을 override 합니다.
onFling은 손을 대었다가 떼야 작동합니다.
onScroll의 경우 손을 대서 움직이는 동안 계속 작동합니다.
그래서 onFling을 사용합니다.
그리고, e1(손을 대는 순간), e2(손을 떼는 순간)의 좌표를 이용하여, X, Y의
차이를 diffX, diffY에 저장합니다.
velocity는 가속도를 나타냅니다. diffX와 velocity가 특정 값 이상이면, 좌우로
움직인 것이 됩니다.
거기에 diffX의 값을 비교하여 0보다 크면, 왼쪽에서 오른쪽으로 손을 움직인
것이고, 0 보다 작으면 오른쪽에서 왼쪽으로 손을 움직인 것입니다.
onFlingRightToLeft와 onFlingLeftToRight를 정의해 줍니다.
저는 달력의 월을 바꾸도록 만들었습니다.
그리고, 어떤 view에서 swipe를 계산할 것인지를 정합니다.
저는 Calendar 위에서 작동하도록 만들었습니다.
setOnTouchListener를 사용합니다.
그리고, 어떤 view에서 swipe를 계산할 것인지를 정합니다.
저는 Calendar 위에서 작동하도록 만들었습니다.
setOnTouchListener를 사용합니다.
달력 위에서 손을 움직이자 월이 변경됩니다.
달력이 아닌 곳에서 움직이면 변경되지 않습니다.
끝.
댓글
댓글 쓰기
궁금한 점은 댓글 달아주세요.
Comment if you have any questions.