การนำทาง 3

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

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

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

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

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

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

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

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

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

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

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