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