คอมโพสิชัน 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 } }
ตัวอย่าง: ผสานรวมกับลิ้นชักการนำทาง
ตัวอย่างนี้แสดงวิธีใช้ภาพเคลื่อนไหวในแอปที่กําหนดเองโดยใช้ PredictiveBackHandler
เพื่อสร้างการโต้ตอบที่ราบรื่นกับลิ้นชักการนําทางเพื่อตอบสนองต่อท่าทางสัมผัส "กลับ" ใน JetLagged
ในตัวอย่างนี้ PredictiveBackHandler
ใช้เพื่อดำเนินการต่อไปนี้
- ติดตามความคืบหน้าของท่าทางสัมผัสการย้อนกลับ
- อัปเดต
translationX
ของลิ้นชักตามความคืบหน้าของท่าทางสัมผัส - ใช้
velocityTracker
เพื่อเปิดหรือปิดลิ้นชักอย่างราบรื่นตามความเร็วของท่าทางสัมผัสเมื่อท่าทางสัมผัสเสร็จสมบูรณ์หรือถูกยกเลิก