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