มีความแตกต่างระหว่างOnTouchListenerและOnClickListenerหรือไม่? ฉันไม่ได้ถามจากมุมมองการเขียนโปรแกรม แต่จากมุมมองของประสบการณ์ผู้ใช้
ใช้อันไหนดี
เราจำเป็นต้องใช้ทั้งสองอย่างหรือไม่?
มีความแตกต่างระหว่างOnTouchListenerและOnClickListenerหรือไม่? ฉันไม่ได้ถามจากมุมมองการเขียนโปรแกรม แต่จากมุมมองของประสบการณ์ผู้ใช้
ใช้อันไหนดี
เราจำเป็นต้องใช้ทั้งสองอย่างหรือไม่?
คำตอบ:
ใช้อันไหนดี
มันขึ้นอยู่กับความต้องการของคุณจริงๆ
onTouchให้คุณ Motion Event ดังนั้นคุณสามารถทำสิ่งที่แปลกใหม่ได้มากมายเนื่องจากช่วยแยกสถานะการเคลื่อนไหว เพียงเพื่อชื่อไม่กี่:
สิ่งเหล่านี้คือการกระทำทั่วไปที่เรามักจะใช้เพื่อให้ได้ผลลัพธ์ที่ต้องการเช่นการลากมุมมองบนหน้าจอ
ในทางกลับกันonClickไม่ได้ให้อะไรคุณมากนักยกเว้นว่าผู้ใช้ดูโต้ตอบ onClickเป็นเหตุการณ์ที่สมบูรณ์ซึ่งประกอบด้วยการโฟกัสการกดและการปล่อย ดังนั้นคุณจึงควบคุมมันได้เล็กน้อย ด้านหนึ่งมันง่ายมากที่จะใช้
เราจำเป็นต้องใช้ทั้งสองอย่างหรือไม่?
ไม่จำเป็นเว้นแต่คุณต้องการทำให้ผู้ใช้ของคุณวุ่นวาย onClickถ้าคุณเพียงต้องการเหตุการณ์คลิกง่ายไปสำหรับ onTouchหากคุณต้องการมากกว่าการคลิกไปสำหรับ การทำทั้งสองอย่างจะทำให้กระบวนการยุ่งยาก
จากจุดที่ผู้ใช้ในมุมมองของมันเป็นที่สังเกตถ้าคุณดำเนินการอย่างรอบคอบเพื่อให้มีลักษณะเหมือนonTouchonClick
เหตุการณ์ "แตะ" คือเมื่อมีคนวางนิ้วบนหน้าจอ มันถูกเรียกตลอดการเคลื่อนไหวของนิ้วลงลากและขึ้น "คลิก" ไม่จำเป็นต้องมาจากหน้าจอด้วยซ้ำ อาจเป็นคนกดแป้น Enter
ใช้OnTouchListenerเมื่อคุณต้องการรับเหตุการณ์จากนิ้วของใครบางคนบนหน้าจอ
ใช้OnClickListenerเมื่อคุณต้องการตรวจจับการคลิก
onClickListener จะใช้เมื่อใดก็ตามที่มีการเพิ่มเหตุการณ์การคลิกสำหรับมุมมองใด ๆ เช่นคลิกเหตุการณ์สำหรับปุ่ม ImageButton
onTouchListener จะใช้เมื่อใดก็ตามที่คุณต้องการใช้ฟังก์ชันประเภท Touch เช่นหากคุณต้องการพิกัดของหน้าจอที่คุณสัมผัส
จากเอกสารอย่างเป็นทางการคำจำกัดความสำหรับทั้งสองคือ:
onClickListner: คำจำกัดความของอินเทอร์เฟซสำหรับการเรียกกลับที่จะเรียกใช้เมื่อมีการคลิกมุมมองonTouchListener: คำจำกัดความของอินเทอร์เฟซสำหรับการเรียกกลับที่จะเรียกใช้เมื่อเหตุการณ์การสัมผัสถูกส่งไปยังมุมมองนี้ การโทรกลับจะถูกเรียกก่อนที่เหตุการณ์การสัมผัสจะถูกมอบให้กับมุมมองเหตุผลที่ดีอย่างหนึ่งในการใช้เหตุการณ์ ontouch กับเหตุการณ์ onclick คือการได้รับการตอบสนองที่เร็วขึ้นเมื่อผู้ใช้คลิก เมื่อเหตุการณ์ onclick ประสบความล่าช้าในการตอบสนองและดำเนินการตามที่กำหนด กิจกรรม ontouch ดีกว่าสำหรับการนำเสนอเว็บแอปบนอุปกรณ์เคลื่อนที่ที่มีประสิทธิภาพสูง
OnClickListener - ใช้เพื่อวัตถุประสงค์พื้นฐานเมื่อเราต้องการคลิกจากผู้ใช้เช่นคลิกปุ่มไม่มีการลากหรือท่าทางบนหน้าจอ
OnTouchListenerโดยพื้นฐานแล้วเป็นการควบคุมที่ปรับแต่งได้ดีกว่า OnClickListener ดำเนินการและดำเนินการกับการกด / ปล่อยบนหน้าจอช่วยให้ผู้ใช้สามารถผสมผสานการเคลื่อนไหวการแตะลงการแตะขึ้นการลากนิ้วหรือท่าทางการเคลื่อนไหวบนหน้าจอ
ชอบใช้ onTouch ยกตัวอย่าง: เมื่อคุณมี ViewPager และ TextView อยู่ในนั้น หากคุณใช้ setOnClickListener บน textView คุณจะไม่สามารถปัด ViewPager ได้เมื่อคุณแตะ / ปัดบน TextView