การนำทาง 3

Navigation 3 เป็นไลบรารีการนำทางใหม่ที่ออกแบบมาให้ทำงานร่วมกับ Compose Navigation 3 ช่วยให้คุณควบคุม Back Stack ได้อย่างเต็มที่ และการไปยังปลายทางต่างๆ นั้นง่ายดายเหมือนกับการเพิ่มและนำรายการออกจากลิสต์ ซึ่งจะสร้างระบบการนำทางของแอปที่ยืดหยุ่นโดยการระบุสิ่งต่อไปนี้

  • รูปแบบการสร้างโมเดลของสแต็กย้อนกลับ ซึ่งแต่ละรายการในสแต็กย้อนกลับ แสดงถึงเนื้อหาที่ผู้ใช้ไปยังส่วนต่างๆ
  • UI ที่อัปเดตโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงสแต็กย้อนกลับ (รวมถึงภาพเคลื่อนไหว)
  • ขอบเขตสำหรับรายการใน Back Stack ซึ่งช่วยให้คงสถานะไว้ได้ขณะที่ รายการอยู่ใน Back Stack
  • ระบบเลย์เอาต์แบบปรับได้ที่ช่วยให้แสดงปลายทางหลายแห่งพร้อมกันได้ และช่วยให้สลับระหว่างเลย์เอาต์เหล่านั้นได้อย่างราบรื่น
  • กลไกสำหรับเนื้อหาในการสื่อสารกับเลย์เอาต์หลัก (ข้อมูลเมตา)

ในระดับสูง คุณจะใช้การนำทาง 3 ได้ด้วยวิธีต่อไปนี้

  1. กำหนดเนื้อหาที่ผู้ใช้ไปยังส่วนต่างๆ ในแอปได้ โดยแต่ละเนื้อหาจะมีคีย์ที่ไม่ซ้ำกัน และเพิ่มฟังก์ชันเพื่อแปลงคีย์นั้นเป็นเนื้อหา ดูแก้ไขคีย์ สำหรับเนื้อหา
  2. สร้างสแต็กย้อนกลับที่ระบบจะพุชคีย์เข้าไปและนำออกเมื่อผู้ใช้ไปยังส่วนต่างๆ ของแอป ดูสร้างสแต็กย้อนกลับ
  3. ใช้ NavDisplay เพื่อแสดงสแต็กย้อนกลับของแอป เมื่อใดก็ตามที่แบ็ก สแต็กมีการเปลี่ยนแปลง ระบบจะอัปเดต UI เพื่อแสดงเนื้อหาที่เกี่ยวข้อง ดูแสดง สแต็กย้อนกลับ
  4. แก้ไขNavDisplayกลยุทธ์ฉากตามที่จำเป็นเพื่อ รองรับเลย์เอาต์ที่ปรับเปลี่ยนได้และแพลตฟอร์มต่างๆ

คุณดูซอร์สโค้ดทั้งหมดของ Navigation 3 ได้ใน AOSP

การปรับปรุง Jetpack Navigation

Navigation 3 ปรับปรุง API การนำทางของ Jetpack เดิมในลักษณะต่อไปนี้

  • ช่วยให้ผสานรวมกับ Compose ได้ง่ายขึ้น
  • ให้คุณควบคุม Back Stack ได้อย่างเต็มที่
  • ช่วยให้สร้างเลย์เอาต์ที่อ่านปลายทางได้มากกว่า 1 รายการ จาก Back Stack พร้อมกัน ทำให้เลย์เอาต์ปรับให้เข้ากับการเปลี่ยนแปลงใน ขนาดหน้าต่างและอินพุตอื่นๆ ได้

อ่านเพิ่มเติมเกี่ยวกับหลักการของ Navigation 3 และตัวเลือกการออกแบบ API ในบล็อกโพสต์นี้

ตัวอย่างโค้ด

ที่เก็บสูตรอาหารมีตัวอย่างวิธีใช้ องค์ประกอบพื้นฐานของ Navigation 3 เพื่อแก้ปัญหาการนำทางที่พบบ่อย