เปิดใช้การลากและวาง

ลองใช้ Compose
Jetpack Compose เป็นชุดเครื่องมือ UI ที่แนะนำสำหรับ Android ดูวิธีใช้การลากและวางใน Compose

เฟรมเวิร์กลากและวางของ Android ช่วยให้คุณเพิ่มความสามารถในการลากและวางแบบอินเทอร์แอกทีฟ ลงในแอปได้ การลากและวางช่วยให้ผู้ใช้สามารถคัดลอกหรือย้ายข้อความ รูปภาพ ออบเจ็กต์ และเนื้อหาใดๆ ที่แสดงด้วย URI จากViewหนึ่งไปยังอีกรายการหนึ่งภายในแอป หรือระหว่างแอป ในโหมดหลายหน้าต่าง

สตริงข้อความและรูปภาพที่ลากและวางภายในแอป สตริงข้อความและรูปภาพที่ลากและวางระหว่างแอปในโหมดแยกหน้าจอ
รูปที่ 1 ลากและวางภายในแอป
รูปที่ 2 ลากและวางระหว่างแอป

เฟรมเวิร์กประกอบด้วยคลาสเหตุการณ์การลาก, Listener การลาก และคลาสและเมธอดตัวช่วย แม้ว่าเฟรมเวิร์กจะออกแบบมาเพื่อเปิดใช้การโอนข้อมูลเป็นหลัก แต่คุณก็สามารถใช้เฟรมเวิร์กนี้สำหรับการดำเนินการอื่นๆ ใน UI ได้ เช่น คุณสามารถสร้างแอปที่ ผสมสีเมื่อผู้ใช้ลากไอคอนสีไปวางไว้เหนือไอคอนอื่น อย่างไรก็ตาม ส่วนที่เหลือของเอกสารจะอธิบายเฟรมเวิร์กการลากและวางในบริบทของการโอนข้อมูล

ภาพรวม

กระบวนการลากเกี่ยวข้องกับองค์ประกอบ 2-3 อย่าง

  1. ลากแหล่งที่มา: มุมมองจุดเริ่มต้นของกระบวนการลากและวาง

  2. เป้าหมายการวาง: มุมมองที่รับข้อมูลที่ลากได้

  3. เงาของการลาก: เงาของการลากคือการแสดง ข้อมูลที่กำลังลาก ซึ่งผู้ใช้จะมองเห็นได้

  4. เหตุการณ์การลาก ขณะที่ผู้ใช้เลื่อนเงาการลากเหนือเลย์เอาต์ของแอป ระบบจะส่งเหตุการณ์การลากไปยังเครื่องมือฟังเหตุการณ์การลากและ เมธอดเรียกกลับที่เชื่อมโยงกับออบเจ็กต์ View ในเลย์เอาต์

การลากและวางจะเริ่มขึ้นเมื่อผู้ใช้ทำท่าทางใน UI ที่แอปของคุณ รับรู้ว่าเป็นสัญญาณให้เริ่มลากข้อมูล ใน การตอบกลับ แอปจะแจ้งให้ระบบทราบว่าการดำเนินการลากและวางกำลังจะ เริ่มต้น ระบบจะเรียกกลับไปยังแอปของคุณเพื่อรับเงาการลากและแสดงต่อผู้ใช้ในระหว่างกระบวนการลากและวาง

ขณะที่ผู้ใช้เลื่อนเงาการลากเหนือเลย์เอาต์ของแอป ระบบจะส่งเหตุการณ์การลากไปยังเครื่องมือฟังเหตุการณ์การลากและวิธีการเรียกกลับ ที่เชื่อมโยงกับออบเจ็กต์ View ในเลย์เอาต์ หากผู้ใช้ปล่อยเงาการลากเหนือเป้าหมายการวาง ระบบจะส่งข้อมูลไปยังเป้าหมายนั้น การลากและวาง จะสิ้นสุดลงเมื่อผู้ใช้ปล่อยเงาการลาก ไม่ว่าเงาการลาก จะอยู่เหนือเป้าหมายการวางหรือไม่ก็ตาม

หัวข้อ

แนวคิดหลัก
ทำความเข้าใจกระบวนการลากและวาง
DropHelper เพื่อการลากและวางที่ง่ายขึ้น
ดูวิธีใช้การลากและวางด้วย DropHelper
ใช้การลากและวางกับมุมมอง
หรือจะใช้การลากและวางกับมุมมอง Android ก็ได้ ซึ่งจะช่วยให้ นักพัฒนาแอปควบคุมรายละเอียดได้มากขึ้น
ลากและวางในโหมดหลายหน้าต่าง
รองรับการลากและวางในโหมดหลายหน้าต่าง อนุญาตให้ย้ายออบเจ็กต์ข้ามแอปพลิเคชันต่างๆ

แหล่งข้อมูลเพิ่มเติม