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.