상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
고조선의 외교 관계는 어떻게 형성되었나요?
카페인이란 무엇인가요?
스테이크를 잘 익히기 위한 비법은 무엇인가요?
스테이크를 조리할 때의 이상적인 조리 온도는 얼마인가요?
스톡홀름의 유명한 미술가는 누구인가요?
칸쿤에서의 해양 생물 관련 온라인 강좌는 무엇이 있나요?
SQL 인젝션 공격의 예시를 들어주세요.
SQL 인젝션 공격을 방어하기 위한 보안 솔루션의 평가 기준은 무엇인가요?
타조의 번식 행동은 어떻게 되나요?
제철소에서의 노사 관계는 어떻게 유지되나요?
제철소의 시장 동향 분석 방법은 어떤 것이 있나요?
타이어의 성능을 비교하는 방법은 무엇인가요?
Previous
Next
수정하기 - 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순위입니다.
수정하기
취소하기