เข้าถึงความคืบหน้าด้วยตนเอง

คอมโพสได้ PredictiveBackHandler ใน Jetpack Compose ช่วยให้คุณ ดักจับท่าทางสัมผัสการย้อนกลับและเข้าถึงความคืบหน้าของท่าทางสัมผัสนั้นได้ คุณสามารถตอบสนองต่อท่าทางสัมผัสการย้อนกลับของผู้ใช้แบบเรียลไทม์ โดยสร้างภาพเคลื่อนไหวหรือลักษณะการทำงานที่กำหนดเองตามระยะทางที่ผู้ใช้ปัด

หากต้องการใช้ PredictiveBackHandler ให้ตรวจสอบว่าคุณใช้ androidx.activity:activity:1.6.0 ขึ้นไป

PredictiveBackHandler มี Flow<BackEventCompat> ที่ปล่อยเหตุการณ์ ซึ่งแสดงถึงความคืบหน้าของท่าทางสัมผัสการย้อนกลับ โดยแต่ละเหตุการณ์จะมีข้อมูลต่อไปนี้

  • progress: ค่าแบบลอยที่อยู่ระหว่าง 0 ถึง 1 ซึ่งบ่งบอกถึงความคืบหน้าของท่าทางสัมผัสการย้อนกลับ (0 = เริ่มท่าทางสัมผัส, 1 = ทำท่าทางสัมผัสเสร็จสมบูรณ์)
  • touchX และ touchY: พิกัด X และ Y ของการโต้ตอบแบบสัมผัส

ข้อมูลโค้ดต่อไปนี้แสดงการใช้งาน PredictiveBackHandler เบื้องต้น

PredictiveBackHandler(true) { progress: Flow<BackEventCompat> ->
    // code for gesture back started
    try {
        progress.collect { backEvent ->
            // code for progress
            boxScale = 1F - (1F * backEvent.progress)
        }
        // code for completion
        boxScale = 0F
    } catch (e: CancellationException) {
        // code for cancellation
        boxScale = 1F
        throw e
    }
}

ตัวอย่าง: ผสานรวมกับลิ้นชักการนำทาง

ตัวอย่างนี้แสดงวิธีใช้ PredictiveBackHandler เพื่อสร้างภาพเคลื่อนไหวที่กำหนดเองในแอปเพื่อสร้างการโต้ตอบที่ราบรื่นกับ Navigation Drawer เพื่อตอบสนองต่อท่าทางสัมผัสการย้อนกลับใน JetLagged:

รูปที่ 5 ลิ้นชักการนำทางที่รองรับการย้อนกลับที่คาดการณ์ได้

ในตัวอย่างนี้ เราใช้ PredictiveBackHandler เพื่อทำสิ่งต่อไปนี้

  • ติดตามความคืบหน้าของท่าทางสัมผัสการย้อนกลับ
  • อัปเดต translationX ของ Drawer ตามความคืบหน้าของท่าทางสัมผัส
  • ใช้ velocityTracker เพื่อเปิดหรือปิด Drawer อย่างราบรื่นตามความเร็วของท่าทางสัมผัสเมื่อทำท่าทางสัมผัสเสร็จสมบูรณ์หรือยกเลิก