หากต้องการเปิดใช้การเคลื่อนไหวย้อนกลับแบบคาดเดา คุณต้องเลือกใช้เพื่อรองรับท่าทางสัมผัสย้อนกลับแบบคาดเดา หากต้องการเลือกใช้ ให้เพิ่ม android:enableOnBackInvokedCallback="true
" ลงในแท็ก <application>
หรือแท็ก <activity>
แต่ละรายการในไฟล์ AndroidManifest.xml
เปิดใช้ภาพเคลื่อนไหวเริ่มต้นของระบบ
ภาพเคลื่อนไหวของระบบสำหรับการกลับไปยังหน้าจอหลัก ข้ามกิจกรรม และข้ามงานจะพร้อมใช้งานในอุปกรณ์ Android 15 ขึ้นไปสำหรับแอปที่ย้ายข้อมูลไปยัง API การจัดการการย้อนกลับที่รองรับ
- กลับไปที่หน้าแรก: นำผู้ใช้กลับไปยังหน้าจอหลัก
- ข้ามกิจกรรม: การเปลี่ยนระหว่างกิจกรรมภายในแอป
- ข้ามงาน: การเปลี่ยนผ่านระหว่างงาน
ระบบจะเปิดใช้ภาพเคลื่อนไหวเหล่านี้โดยค่าเริ่มต้นใน Android 15 ขึ้นไป ในอุปกรณ์ที่ใช้ Android 13 หรือ 14 ผู้ใช้จะเปิดใช้ผ่านตัวเลือกสำหรับนักพัฒนาแอปได้
หากต้องการใช้ภาพเคลื่อนไหวของระบบ ให้อัปเดตActivity
Dependency ของ AndroidX เป็น 1.6.0 ขึ้นไป
เปิดใช้การย้อนกลับแบบคาดเดาด้วย Navigation Compose
หากต้องการใช้การคาดคะเนการย้อนกลับใน Navigation Compose โปรดตรวจสอบว่าคุณใช้ไลบรารีnavigation-compose
2.8.0 ขึ้นไป
คอมโพสิชันการนําทางจะเปลี่ยนภาพไปมาระหว่างหน้าจอโดยอัตโนมัติเมื่อผู้ใช้ปัดกลับ
เมื่อไปยังส่วนต่างๆ คุณสามารถสร้างทรานซิชันที่กำหนดเองได้โดยใช้ popEnterTransition
และ popExitTransition
เมื่อใช้กับ NavHost
ตัวแก้ไขเหล่านี้จะช่วยให้คุณกำหนดลักษณะภาพเคลื่อนไหวของหน้าจอ "เข้า" และ "ออก" ได้ คุณสามารถใช้เอฟเฟกต์เหล่านี้เพื่อสร้างเอฟเฟกต์ที่หลากหลาย เช่น การปรับขนาด การเลือน หรือการสไลด์
ในตัวอย่างนี้ scaleOut
ใช้ภายใน popExitTransition
เพื่อลดขนาดหน้าจอที่กำลังจะออกเมื่อผู้ใช้ไปยังส่วนต่างๆ กลับ นอกจากนี้ พารามิเตอร์ transformOrigin
ยังกำหนดจุดศูนย์กลางของภาพเคลื่อนไหวการปรับขนาด โดยค่าเริ่มต้นจะเป็นจุดศูนย์กลางของหน้าจอ (0.5f, 0.5f
)
คุณปรับค่านี้เพื่อให้การปรับขนาดเริ่มต้นจากจุดอื่นได้
NavHost( navController = navController, startDestination = Home, popExitTransition = { scaleOut( targetScale = 0.9f, transformOrigin = TransformOrigin(pivotFractionX = 0.5f, pivotFractionY = 0.5f) ) }, popEnterTransition = { EnterTransition.None }, modifier = modifier, )
โค้ดนี้จะแสดงผลลัพธ์ต่อไปนี้
popEnterTransition
และ popExitTransition
จะควบคุมภาพเคลื่อนไหวโดยเฉพาะเมื่อแสดงกองซ้อนที่ย้อนกลับ เช่น เมื่อใช้ท่าทางสัมผัสการย้อนกลับ นอกจากนี้ คุณยังใช้ enterTransition
และ exitTransition
เพื่อกำหนดภาพเคลื่อนไหวสำหรับการเข้าและออกจากคอมโพสิเบิลโดยทั่วไปได้ ไม่ใช่แค่สำหรับการกลับไปยังหน้าก่อนหน้าแบบคาดคะเน หากคุณตั้งค่าเพียง enterTransition
และ exitTransition
ระบบจะใช้ทั้ง 2 รายการนี้สําหรับทั้งการนําทางปกติและการป๊อปสแต็กย้อนกลับ แต่การใช้ popEnterTransition
และ popExitTransition
จะช่วยให้คุณสร้างภาพเคลื่อนไหวที่แตกต่างกันสำหรับการไปยังส่วนหลังได้
ผสานรวมกับองค์ประกอบแบบใช้ร่วมกันในการเปลี่ยนภาพ
การเปลี่ยนองค์ประกอบที่แชร์จะสร้างการเชื่อมต่อภาพอย่างราบรื่นระหว่างคอมโพสิชันที่มีเนื้อหาที่แชร์ ซึ่งมักใช้เพื่อการนําทาง
หากต้องการใช้องค์ประกอบที่แชร์กับ Navigation Compose โปรดดูหัวข้อการย้อนกลับแบบคาดคะเนด้วยองค์ประกอบที่แชร์
รองรับการกดกลับแบบคาดการณ์ด้วยคอมโพเนนต์ Material Compose
คอมโพเนนต์หลายรายการในไลบรารี Material Compose ออกแบบมาเพื่อให้ทำงานร่วมกับท่าทางสัมผัสเพื่อย้อนกลับแบบคาดการณ์ได้อย่างราบรื่น หากต้องการเปิดใช้ภาพเคลื่อนไหวแบบคาดคะเนกลับในคอมโพเนนต์เหล่านี้ ให้รวมข้อกําหนดของ Material3 เวอร์ชันล่าสุด (androidx.compose.material3:material3-*:1.3.0
ขึ้นไป) ไว้ในโปรเจ็กต์
คอมโพเนนต์ Material ที่รองรับการเคลื่อนไหวย้อนกลับแบบคาดเดา ได้แก่
SearchBar
ModalBottomSheet
ModalDrawerSheet/DismissibleDrawerSheet
ModalNavigationDrawer/DismissibleNavigationDrawer
SearchBar
และ ModalBottomSheet
จะเคลื่อนไหวโดยอัตโนมัติด้วยท่าทางสัมผัสการย้อนกลับที่คาดการณ์ได้ ModalNavigationDrawer
,
ModalDrawerSheet
, DismissibleDrawerSheet
และ
DismissibleNavigationDrawer
กำหนดให้คุณส่ง drawerState
ไปยังคอมโพสิชันเนื้อหาชีตที่เกี่ยวข้อง
ทดสอบภาพเคลื่อนไหวของท่าทางสัมผัสการย้อนกลับแบบคาดเดา
หากยังใช้ Android 13 หรือ Android 14 อยู่ คุณจะทดสอบภาพเคลื่อนไหวของการเปลี่ยนกลับไปที่หน้าจอหลักได้
หากต้องการทดสอบภาพเคลื่อนไหวนี้ ให้ทำตามขั้นตอนต่อไปนี้
- ในอุปกรณ์ ให้ไปที่การตั้งค่า > ระบบ > ตัวเลือกสำหรับนักพัฒนาแอป
- เลือกการเคลื่อนไหวย้อนกลับแบบคาดเดา
- เปิดแอปที่อัปเดตแล้ว และใช้ท่าทางสัมผัสเพื่อดูการทํางาน
ใน Android 15 ขึ้นไป ฟีเจอร์นี้จะเปิดใช้โดยค่าเริ่มต้น
แหล่งข้อมูลเพิ่มเติม
- เพิ่ม Codelab การเคลื่อนไหวย้อนกลับแบบคาดเดา
- ภาพเคลื่อนไหวของเลย์เอาต์ขั้นสูงในเครื่องมือสร้างวิดีโอ