Navigation 3 เป็นไลบรารีการนำทางใหม่ที่ออกแบบมาเพื่อทำงานร่วมกับ Compose เมื่อใช้การนําทาง 3 คุณจะควบคุมกองซ้อนที่ย้อนกลับได้อย่างเต็มที่ และการไปยังและออกจากปลายทางนั้นง่ายเหมือนการเพิ่มและนํารายการออกจากรายการ ซึ่งจะสร้างระบบการนําทางแอปที่ยืดหยุ่นโดยให้สิ่งต่อไปนี้
- รูปแบบการสร้างสแต็กย้อนกลับ โดยแต่ละรายการในสแต็กย้อนกลับจะแสดงถึงเนื้อหาที่ผู้ใช้ไปยัง
- UI ที่อัปเดตโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงกองซ้อนที่ซ้อนกัน (รวมถึงภาพเคลื่อนไหว)
- ขอบเขตสําหรับรายการในกองซ้อนด้านหลัง ซึ่งช่วยให้เก็บสถานะไว้ได้ขณะที่รายการอยู่ในกองซ้อนด้านหลัง
- ระบบเลย์เอาต์แบบปรับเปลี่ยนได้ซึ่งช่วยให้แสดงปลายทางหลายแห่งพร้อมกันได้ และช่วยให้สลับระหว่างเลย์เอาต์เหล่านั้นได้อย่างราบรื่น
- กลไกสำหรับเนื้อหาในการสื่อสารกับเลย์เอาต์หลัก (ข้อมูลเมตา)
ในระดับสูง คุณใช้การนําทาง 3 ได้ด้วยวิธีต่อไปนี้
- กำหนดเนื้อหาที่ผู้ใช้ไปยังส่วนต่างๆ ของแอปได้ โดยแต่ละส่วนจะมีคีย์ที่ไม่ซ้ำกัน และเพิ่มฟังก์ชันเพื่อแก้ไขคีย์นั้นไปยังเนื้อหา ดูแก้ไขคีย์สำหรับเนื้อหา
- สร้างกองซ้อนที่ซ้อนไปข้างหน้าซึ่งระบบจะเพิ่มและนำคีย์ออกเมื่อผู้ใช้ไปยังส่วนต่างๆ ของแอป ดูสร้างกองซ้อนที่ซ้อนไปข้างหน้า
- ใช้
NavDisplay
เพื่อแสดงกองซ้อนที่ย้อนกลับของแอป ทุกครั้งที่กองซ้อนย้อนกลับเปลี่ยนแปลง ระบบจะอัปเดต UI เพื่อแสดงเนื้อหาที่เกี่ยวข้อง โปรดดูแสดงกอง - แก้ไขกลยุทธ์ฉากของ
NavDisplay
ตามที่จำเป็นเพื่อรองรับเลย์เอาต์ที่ปรับเปลี่ยนได้และแพลตฟอร์มต่างๆ
คุณดูซอร์สโค้ดทั้งหมดของ Navigation 3 ได้ใน AOSP
การปรับปรุง Jetpack Navigation
Navigation 3 ปรับปรุง Jetpack Navigation API เวอร์ชันเดิมในด้านต่อไปนี้
- ให้การผสานรวมกับ Compose ง่ายขึ้น
- ให้คุณควบคุมกองซ้อนที่ซ้อนกันอยู่ได้อย่างเต็มที่
- ช่วยให้สร้างเลย์เอาต์ที่อ่านปลายทางได้มากกว่า 1 รายการจากกองซ้อนด้านหลังพร้อมกันได้ ซึ่งช่วยให้สามารถปรับตัวตามการเปลี่ยนแปลงขนาดหน้าต่างและอินพุตอื่นๆ
อ่านเพิ่มเติมเกี่ยวกับหลักการและตัวเลือกการออกแบบ API ของ Navigation 3 ในบล็อกโพสต์นี้
ตัวอย่างโค้ด
ที่เก็บข้อมูลสูตรมีตัวอย่างวิธีใช้องค์ประกอบพื้นฐานของการนำทาง 3 เพื่อแก้ปัญหาการนําทางที่พบบ่อย