OnTouch와 OnClick Android의 차이점


91

OnTouchListener와 사이에 차이점이 OnClickListener있습니까? 나는 프로그래밍 관점에서 묻는 것이 아니라 사용자 경험 관점에서 묻습니다.

어느 것을 사용하는 것이 더 낫습니까?

둘 다 구현해야합니까?

답변:


101

어느 것을 사용하는 것이 더 낫습니까?

그것은 귀하의 요구 사항에 따라 다릅니다.

onTouch모션 이벤트를 제공합니다. 따라서 움직임 상태를 분리하는 데 도움이되므로 멋진 일을 많이 할 수 있습니다. 몇가지 말하자면:

  • ACTION_UP
  • ACTION_DOWN
  • ACTION_MOVE

이는 화면에서 뷰를 드래그하는 것과 같은 원하는 결과를 얻기 위해 일반적으로 구현하는 일반적인 작업입니다.

반면에 onClick사용자가 상호 작용하는 뷰를 제외하고는 많이 제공하지 않습니다. onClick초점 맞추기, 누르기 및 놓기로 구성된 완전한 이벤트입니다. 그래서, 당신은 그것을 거의 통제 할 수 없습니다. 한 가지 측면은 구현이 매우 간단하다는 것입니다.

둘 다 구현해야합니까?

사용자를 엉망으로 만들고 싶지 않으면 필요하지 않습니다. 간단한 클릭 이벤트를 원하면 onClick. 클릭 이상을 원하면으로 이동하십시오 onTouch. 둘 다 수행하면 프로세스가 복잡해집니다.

당신이 구현하는 경우보기의 사용자 관점에서, 그것은 눈에 띄지입니다 onTouch같이 신중하게 onClick.


3
제어가 필요하면 onTouch로 이동하십시오. 대부분의 경우 onClick이 수행합니다. PH7의 답변을 참조하십시오.
— drulabs

나는 아직도 어떤 것을 사용할지 알아 내려고 노력하고 있습니다. 내가 4 개의보기를 가지고 있다면, 그 중 3 개는 클릭과 스 와이프가 모두 필요하고 4 번째는 클릭 만 필요합니다. 처음 3 개의 뷰에 대해 클릭 또는 스와이 프로 만 onTouch를 사용할 수 있다는 것을 알고 있지만 4 번째 뷰는 어떻습니까? 하나의 뷰에 대해 onClick을 구현해야합니까 아니면 이미 호출 되었기 때문에 onTouch를 사용해야합니까 ..?
— cjayem13

특정 결과를 얻기 위해 onTouch를 사용해야 할 수도 있습니다.이 경우 사용자의 관점이 망가집니다. FE, 소프트 키보드가 표시되지 않도록 차단하여 직접 제공 할 수 있도록하려면 onTouch를 사용해야합니다. TIL onClick은 그것을하지 않을 것입니다.
— ChiefTwoPencils

24

"터치"이벤트는 누군가 화면에 손가락을 대는 것입니다. 손가락, 아래로, 끌기, 위로 이동하는 동안 호출됩니다. "클릭"은 화면에서 나올 필요도 없습니다. 누군가가 Enter 키를 누르는 것일 수 있습니다.

OnTouchListener화면에서 누군가의 손가락으로 이벤트를 받고 싶을 때 사용 합니다.

OnClickListener클릭을 감지하고 싶을 때 사용 합니다.


버튼에 터치 이벤트를 사용하는 개발자를 보았습니다. 그 이유는 무엇입니까? 나는 전화로 테스트하지 않았지만 성능 즉흥 연주가 있습니까?
— Nixit Patel 2012

1
@NixitPatel 그들의 출처를 보지 않고는 좋은 이유가 떠오르지 않습니다.
— Thomas Dignan

사실이지만 이제 내 대답을 찾았습니다. 여러분의 도움과 입자 접근 방식으로. 전혀 걱정할 필요가, 감사 요청을위한
— Nixit 파텔을

9
  • onClickListener 보기에 대한 클릭 이벤트가 발생할 때마다 사용됩니다 (예 : Button의 클릭 이벤트, ImageButton).

  • onTouchListener 예를 들어 정확하게 터치하는 화면의 좌표를 얻으려는 경우와 같이 Touch 종류의 기능을 구현할 때마다 사용됩니다.

공식 문서에서 둘 다에 대한 정의는 다음과 같습니다.

  • onClickListner:보기를 클릭 할 때 호출되는 콜백에 대한 인터페이스 정의입니다.
  • onTouchListener: 터치 이벤트가이 뷰로 전달 될 때 호출 될 콜백에 대한 인터페이스 정의입니다. 터치 이벤트가 뷰에 제공되기 전에 콜백이 호출됩니다.

1
버튼에 터치 이벤트를 사용하는 개발자를 보았습니다. 그 이유는 무엇입니까? 나는 전화로 테스트하지 않았지만 성능 즉흥 연주가 있습니까?
— Nixit Patel 2012

8

onclick 이벤트보다 ontouch 이벤트를 사용하는 한 가지 좋은 이유는 사용자가 클릭 할 때 더 빠른 응답을 얻기 위해서입니다. onclick 이벤트가 응답하고 필요한 조치를 진행하는 데 지연이 발생하는 경우. ontouch 이벤트는 고성능 모바일 웹 앱을 제공하는 데 더 좋습니다.


2

OnClickListener -사용자의 클릭 만 필요한 경우 (예 : 버튼 클릭, 화면의 드래그 또는 제스처 없음) 기본 목적으로 사용됩니다.

OnTouchListener기본적으로 OnClickListener보다 미세 조정 된 컨트롤입니다. 화면에서 눌렀다가 놓을 때 수행 및 작업을 수행합니다. 화면에서 이동, 아래로 터치, 위로 터치, 손가락 끌기 또는 모든 이동 제스처를 조합하여 사용자가 사용할 수 있습니다.


1

onTouch를 선호합니다. 예를 들어 보자 : ViewPager와 TextView가있을 때. textView에서 setOnClickListener를 구현하면 TextView에서 터치 / 스 와이프 할 때 ViewPager를 스 와이프 할 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.