การนำทาง 3

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

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

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

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

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

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

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

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

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

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

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