상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - HorizontalScrollView 내에서의 터치 스와이프 동작 처리는 어떻게 하나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
`HorizontalScrollView` 내에서의 터치 스와이프 동작을 처리하는 것은 스크롤 뷰의 터치 이벤트를 가로채고, 사용자의 스와이프 제스처를 인식하여 원하는 동작을 수행하는 방식으로 이루어집니다. 아래에 관련 예제를 들어 설명하겠습니다. 1. GestureDetector 사용하기 : `GestureDetector`를 사용하여 사용자의 스와이프 동작을 감지할 수 있습니다. 이를 통해 스와이프가 발생했을 때 특정 행동을 취할 수 있습니다. 2. onTouchEvent 오버라이드 : `HorizontalScrollView`의 서브클래스를 만들어 `onTouchEvent` 메서드를 오버라이드하여 터치 이벤트를 처리합니다. 다음은 `HorizontalScrollView`에서 스와이프 동작을 처리하는 간단한 예제입니다. ```java import android.content.Context; import android.util.AttributeSet; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.ViewConfiguration; import android.widget.HorizontalScrollView; public class CustomHorizontalScrollView extends HorizontalScrollView { private GestureDetector gestureDetector; public CustomHorizontalScrollView(Context context) { super(context); init(context); } public CustomHorizontalScrollView(Context context, AttributeSet attrs) { super(context, attrs); init(context); } public CustomHorizontalScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(context); } private void init(Context context) { gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // 여기에 스와이프 동작을 처리하는 로직을 추가합니다. if (e1.getX() - e2.getX() > 50 && Math.abs(velocityX) > ViewConfiguration.get(context).getScaledMinimumFlingVelocity()) { // 왼쪽으로 스와이프 // 원하는 동작을 추가합니다. return true; } else if (e2.getX() - e1.getX() > 50 && Math.abs(velocityX) > ViewConfiguration.get(context).getScaledMinimumFlingVelocity()) { // 오른쪽으로 스와이프 // 원하는 동작을 추가합니다. return true; } return false; } }); } @Override public boolean onTouchEvent(MotionEvent ev) { // GestureDetector에 이벤트를 전달 gestureDetector.onTouchEvent(ev); return super.onTouchEvent(ev); } } ``` 코드 설명: - `CustomHorizontalScrollView` 클래스를 만들어 `HorizontalScrollView`를 상속받습니다. - `GestureDetector`를 초기화하고 `onFling` 메서드를 오버라이드하여 사용자가 스와이프할 때의 동작을 정의합니다. - `onTouchEvent`에서 터치 이벤트를 `gestureDetector`에 전달하여 스와이프 제스처가 감지되면 원하는 동작을 수행할 수 있게 합니다. 스와이프 민감도 조정: - `ViewConfiguration.get(context).getScaledMinimumFlingVelocity()`를 사용하여 스와이프 감지 민감도를 조정할 수 있습니다. - 스와이프 방향 및 임계값을 더 조정하여 더욱 정교한 동작 처리가 가능합니다. 위와 같은 방식으로 `HorizontalScrollView` 내에서 스와이프 동작을 처리할 수 있습니다. 필요에 따라 추가적인 동작을 구현하면 됩니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기