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

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

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

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

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

ภาพรวม

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

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

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

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

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

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

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

หัวข้อ

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

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