การนำทาง 3

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

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

โดยคุณสามารถติดตั้งใช้งาน Navigation 3 ได้ในระดับสูงด้วยวิธีต่อไปนี้

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

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

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

Navigation 3 ได้รับการปรับปรุงจาก Jetpack Navigation API เดิมในด้านต่อไปนี้

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

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

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

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