เฟรมเวิร์กการลากและวางของ Android ช่วยให้คุณเพิ่มความสามารถในการลากและวางแบบโต้ตอบ
ลงในแอปได้ การลากและวางช่วยให้ผู้ใช้คัดลอกหรือย้ายข้อความ
รูปภาพ ออบเจ็กต์ และเนื้อหาใดๆ ที่แสดงด้วย URI จากหนึ่ง
Viewไปยังอีกรายการหนึ่งภายในแอป หรือระหว่างแอป
ใน โหมดหลายหน้าต่าง
|
|
|
|
|
เฟรมเวิร์กประกอบด้วยคลาสเหตุการณ์การลาก, ตัวรับฟังการลาก, คลาสและเมธอดตัวช่วย แม้ว่าจะออกแบบมาเพื่อเปิดใช้การโอนข้อมูลเป็นหลัก แต่คุณก็สามารถใช้เฟรมเวิร์กสำหรับการดำเนินการอื่นๆ ใน UI ได้ เช่น คุณสามารถสร้างแอปที่ผสมสีเมื่อผู้ใช้ลากไอคอนสีไปวางบนไอคอนอื่น อย่างไรก็ตาม ส่วนที่เหลือของเอกสารนี้จะอธิบายเฟรมเวิร์กการลากและวางในบริบทของการโอนข้อมูล
ภาพรวม
กระบวนการลากมีองค์ประกอบที่เกี่ยวข้อง 2-3 อย่าง
แหล่งที่มาของการลาก: มุมมองจุดเริ่มต้นของกระบวนการลากและวาง
เป้าหมายการวาง: มุมมองที่รับข้อมูลการลากได้
เงาการลาก: เงาการลาก คือการแสดง ข้อมูลที่กำลังลาก ซึ่งผู้ใช้มองเห็นได้
เหตุการณ์การลาก: เมื่อผู้ใช้ย้ายเงาการลากไปไว้เหนือ เลย์เอาต์ของแอป ระบบจะส่งเหตุการณ์การลากไปยังตัวรับฟังเหตุการณ์การลากและ เมธอดเรียกกลับที่เชื่อมโยงกับออบเจ็กต์
Viewในเลย์เอาต์
การดำเนินการลากและวางจะเริ่มต้นขึ้นเมื่อผู้ใช้ทำท่าทางสัมผัส UI ที่แอปของคุณจดจำได้ว่าเป็นสัญญาณให้เริ่มลากข้อมูล แอปจะแจ้งให้ระบบทราบว่าการดำเนินการลากและวางกำลังเริ่มต้นขึ้น ระบบจะเรียกกลับไปยังแอปเพื่อรับ เงาการลาก และแสดงเงาการลากแก่ผู้ใช้ในระหว่างกระบวนการลากและวาง
เมื่อผู้ใช้ย้ายเงาการลากไปไว้เหนือเลย์เอาต์ของแอป ระบบจะส่งเหตุการณ์การลาก
ไปยัง ตัวรับฟังเหตุการณ์การลากและเมธอดเรียกกลับ
ที่เชื่อมโยงกับออบเจ็กต์ View ในเลย์เอาต์ หากผู้ใช้ปล่อยเงาการลากไว้เหนือเป้าหมายการวาง ระบบจะส่งข้อมูลไปยังเป้าหมายการวาง การดำเนินการลากและวางจะสิ้นสุดลงเมื่อผู้ใช้ปล่อยเงาการลาก ไม่ว่าเงาการลากจะอยู่เหนือเป้าหมายการวางหรือไม่ก็ตาม
หัวข้อ
- แนวคิดหลัก
- ทำความเข้าใจกระบวนการลากและวาง
- DropHelper สำหรับการลากและวางที่ง่ายขึ้น
- ดูวิธีใช้การลากและวางด้วย
DropHelper - ใช้การลากและวางกับมุมมอง
- หรือใช้การลากและวางกับมุมมอง Android ซึ่งช่วยให้นักพัฒนาแอปควบคุมรายละเอียดได้มากขึ้น
- การลากและวางในโหมดหลายหน้าต่าง
- รองรับการลากและวางในโหมดหลายหน้าต่าง อนุญาตให้ออบเจ็กต์ย้ายไปมาระหว่างแอปพลิเคชันต่างๆ
แหล่งข้อมูลเพิ่มเติม
- Codelab สำหรับการลากและวาง โดยใช้มุมมอง
- การลากและวางสำหรับการทำงานหลายอย่างพร้อมกันอย่างราบรื่น วิดีโอ
- ตัวอย่างการลากและวาง ซึ่งมีวิธีต่างๆ ในการใช้การลากและวาง รวมถึงการยอมรับริชมีเดีย