2012-02-03 62 views
69

Có sự khác biệt nào giữa OnTouchListenerOnClickListener không? Tôi không hỏi từ quan điểm lập trình, nhưng từ quan điểm Kinh nghiệm người dùng.Sự khác biệt giữa OnTouch và OnClick Android

Loại nào tốt hơn để sử dụng?

Chúng ta có cần triển khai cả hai không?

Trả lời

81

cái nào tốt hơn để sử dụng?

Nó thực sự phụ thuộc vào yêu cầu của bạn. onTouch cung cấp cho bạn Sự kiện chuyển động. Vì vậy, bạn có thể làm rất nhiều điều ưa thích vì nó giúp bạn tách trạng thái di chuyển. Chỉ cần đến tên một vài

  • ACTION_UP
  • ACTION_DOWN
  • ACTION_MOVE

Đó là những hành động thông thường chúng ta thường thực hiện để có được kết quả mong muốn như kéo xem trên màn hình.

Mặt khác, onClick không cung cấp cho bạn nhiều ngoại trừ chế độ xem mà người dùng tương tác. onClick là một sự kiện hoàn chỉnh bao gồm lấy nét, nhấn và nhả. Vì vậy, bạn có ít quyền kiểm soát nó. Một mặt là nó rất đơn giản để thực hiện.

chúng ta có cần triển khai cả hai không?

Không cần thiết trừ khi bạn muốn gây rối với người dùng của mình.Nếu bạn chỉ muốn sự kiện nhấp chuột đơn giản, hãy truy cập onClick. Nếu bạn muốn nhiều hơn click, hãy vào onTouch. Làm cả hai sẽ làm phức tạp quá trình.

Từ quan điểm của người dùng, không thể nhận thấy nếu bạn thực hiện onTouch cẩn thận để trông giống như onClick.

+2

Nếu bạn cần một số điều khiển thì hãy truy cập onTouch. Đối với hầu hết các trường hợp onClick sẽ làm. Xem câu trả lời của PH7. – drulabs

+0

Tôi vẫn đang cố gắng tìm ra cái nào để sử dụng. Nếu tôi có 4 lượt xem, 3 trong số đó yêu cầu cả nhấp chuột và vuốt trong khi chỉ có lần nhấp thứ 4. Tôi biết tôi có thể sử dụng onTouch chỉ như nhấp chuột hoặc vuốt cho 3 lượt xem đầu tiên nhưng còn khoảng 4 thì sao? Tôi có nên triển khai onClick cho một chế độ xem hay chỉ sử dụng onTouch vì nó đã được gọi là ..? – cjayem13

+0

Cần lưu ý rằng có thể cần sử dụng onTouch để đạt được một số kết quả nhất định, trong đó quan điểm người dùng trường hợp bị xem là damned. FE, nếu bạn muốn chặn bàn phím mềm hiển thị, vì vậy bạn có thể cung cấp cho riêng mình, nó phải được thông qua onTouch. TIL onClick sẽ không làm điều đó. – ChiefTwoPencils

19

Sự kiện "Chạm" là khi ai đó đặt ngón tay lên màn hình. Nó được gọi trong suốt chuyển động của ngón tay, xuống, kéo và lên. Một "Click" cần thậm chí không đến từ màn hình. Có thể ai đó đang nhấn phím enter.

Sử dụng OnTouchListener khi bạn muốn nhận sự kiện từ ngón tay của ai đó trên màn hình.

Sử dụng OnClickListener khi bạn muốn phát hiện nhấp chuột.

+0

Tôi đã thấy một số nhà phát triển sử dụng sự kiện chạm cho nút, lý do cho điều đó là gì? Tôi chưa thử nghiệm trên điện thoại nhưng, có bất kỳ ngẫu hứng hiệu suất nào không? –

+0

@NixitPatel Không có lý do chính đáng nào mà không cần phải nhìn thấy nguồn của chúng. –

+0

đúng, nhưng bây giờ tôi tìm thấy câu trả lời của tôi ... với sự giúp đỡ của các bạn và một số phương pháp tiếp cận hạt. không cần phải lo lắng, Cảm ơn bạn đã yêu cầu –

7
  • onClickListener được sử dụng bất cứ khi nào một sự kiện nhấp cho bất kỳ chế độ xem nào được nêu ra, ví dụ: sự kiện nhấp chuột cho nút, ImageButton.

  • onTouchListener được sử dụng bất cứ khi nào bạn muốn triển khai loại chức năng cảm ứng, ví dụ: nếu bạn muốn có được tọa độ của màn hình mà bạn chạm chính xác.

từ doc chính thức, định nghĩa cho cả hai là:

  • onClickListner: định nghĩa giao diện cho một callback được gọi khi một cái nhìn được nhấp.
  • onTouchListener: Định nghĩa giao diện để gọi lại được gọi khi sự kiện chạm được gửi đến chế độ xem này. Cuộc gọi lại sẽ được gọi trước khi sự kiện cảm ứng được cung cấp cho khung nhìn.
+1

Tôi đã thấy một số nhà phát triển sử dụng sự kiện chạm cho nút sẽ là lý do cho điều đó? Tôi chưa thử nghiệm trên điện thoại nhưng, có bất kỳ ngẫu hứng hiệu suất nào không? –

7

Một lý do chính đáng để sử dụng sự kiện ontouch trên sự kiện onclick là nhận được phản hồi nhanh hơn khi người dùng nhấp. Trường hợp sự kiện onclick bị chậm trễ trong việc phản hồi và tiếp tục với hành động bắt buộc. sự kiện ontouch tốt hơn để phân phối các ứng dụng web di động có hiệu suất cao.

0

OnClickListener - được sử dụng cho một mục đích cơ bản, khi chúng ta chỉ cần một cú nhấp chuột từ một ví dụ sử dụng, bấm vào một nút, không kéo hoặc cử chỉ trên màn hình

OnTouchListener về cơ bản là một điều khiển tinh chỉnh hơn OnClickListener. Nó thực hiện và hành động trên một báo chí/phát hành trên màn hình Nó cho phép người dùng kết hợp di chuyển, cảm ứng, chạm vào, kéo ngón tay hoặc cử chỉ bất kỳ trên màn hình

2

Thích sử dụng onTouch. Cung cấp cho bạn một ví dụ: khi bạn có một ViewPager và một TextView trong đó. nếu bạn triển khai setOnClickListener trên textView, bạn sẽ không thể vuốt ViewPager khi bạn chạm/vuốt trên TextView

Các vấn đề liên quan