상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - HorizontalScrollView에서 터치 제스처를 처리하는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
`<a href='https://sangseek.com/sangseeks/HorizontalScrollView/ko'>HorizontalScrollView</a>`에서 터치 제스처를 처리하는 방법은 다양한 방식으로 접근할 수 있습니다. 일반적으로 `HorizontalScrollView`는 내부적으로 터치 이벤트를 처리하지만, 특정 상황에서는 사용자 지정 제스처 처리기가 필요할 수 있습니다. 여기서 몇 가지 방법을 소개하겠습니다. 1. GestureDetector 사용하기 `GestureDetector`를 사용하여 다양한 제스처를 감지하고 처리할 수 있습니다. `HorizontalScrollView` 내에 `GestureDetector`를 설정하여 터치 제스처를 처리할 수 있습니다. ```java 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) { // 플링 제스처 처리 return super.onFling(e1, e2, velocityX, velocityY); } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { // 스크롤 제스처 처리 return super.onScroll(e1, e2, distanceX, distanceY); } @Override public boolean onSingleTapConfirmed(MotionEvent e) { // 탭 제스처 처리 return super.onSingleTapConfirmed(e); } }); } @Override public boolean onTouchEvent(MotionEvent event) { gestureDetector.onTouchEvent(event); return super.onTouchEvent(event); } } ``` 위 코드에서는 `GestureDetector`를 통해 다양한 제스처의 이벤트를 처리할 수 있습니다. `onTouchEvent()` 메서드에서 `gestureDetector`의 `onTouchEvent()`를 호출하여 제스처를 감지합니다. 2. OnTouchListener 사용하기 `HorizontalScrollView`에 `OnTouchListener`를 설정하여 직접적인 터치 이벤트를 처리할 수도 있습니다. ```java HorizontalScrollView horizontalScrollView = findViewById(R.id.horizontalScrollView); horizontalScrollView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // 터치 시작 처리 break; case MotionEvent.ACTION_MOVE: // 터치 이동 처리 break; case MotionEvent.ACTION_UP: // 터치 종료 처리 break; } return false; // false를 반환하면 기본 동작이 처리됩니다. true를 반환하면 기본 동작이 방지됩니다. } }); ``` 3. 사용자 정의 ViewGroup 만들기 보다 복잡한 입력 처리가 필요하다면 `HorizontalScrollView`를 상속하여 사용자 지정 ViewGroup을 만들 수도 있습니다. 이 경우 기본적인 터치 이벤트 처리를 사용자 정의하여 자유롭게 입력을 제어할 수 있습니다. 결론 `HorizontalScrollView`에서 터치 제스처를 처리하는 방법은 여러 가지가 있으며, 필요에 따라 `GestureDetector`, `OnTouchListener`, 또는 사용자 정의 ViewGroup을 사용하여 적절하게 처리할 수 있습니다. 제스처의 복잡성이나 요구 사항에 따라 적합한 방법을 선택하면 됩니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기