Jetpack Navigation 3 เวอร์ชัน 1.0 เสถียรแล้ว 🎉 นำไปใช้ในแอปเวอร์ชันที่ใช้งานจริงได้แล้ววันนี้ JetBrains ใช้ฟีเจอร์นี้ในแอป KotlinConf อยู่แล้ว
Navigation 3 เป็นไลบรารีการนำทางใหม่ที่สร้างขึ้นตั้งแต่ต้นเพื่อรองรับสถานะ Jetpack Compose state โดยจะช่วยให้คุณควบคุม Back Stack ได้อย่างเต็มที่ ช่วยรักษาสถานะการนำทาง และช่วยให้คุณสร้างเลย์เอาต์ที่ปรับเปลี่ยนได้ง่ายๆ (เช่น เลย์เอาต์แบบรายละเอียดรายการ) นอกจากนี้ยังมีเวอร์ชันข้ามแพลตฟอร์มจาก JetBrains ด้วย
เหตุใดจึงต้องมีไลบรารีใหม่
ไลบรารี Jetpack Navigation เดิม (ปัจจุบันคือ Nav2) ได้รับการออกแบบเมื่อ 7 ปีที่แล้ว และแม้ว่าไลบรารีนี้จะตอบโจทย์เป้าหมายเดิมได้เป็นอย่างดีและได้รับการปรับปรุงอย่างต่อเนื่อง แต่ปัจจุบันวิธีสร้างแอปได้เปลี่ยนแปลงไปอย่างสิ้นเชิง
การเขียนโปรแกรมเชิงโต้ตอบด้วย UI ที่ประกาศได้กลายเป็นเรื่องปกติไปแล้ว Nav3 รองรับแนวทางนี้ ตัวอย่างเช่น NavDisplay (คอมโพเนนต์ UI ของ Nav3 ที่ แสดงหน้าจอ) จะสังเกตรายการคีย์ (แต่ละคีย์แสดงถึงหน้าจอ) ที่สนับสนุนโดยสถานะ Compose และอัปเดต UI เมื่อรายการนั้นมีการเปลี่ยนแปลง
นอกจากนี้ Nav2 ยังอาจทำให้การมีแหล่งข้อมูลที่เชื่อถือได้เพียงแหล่งเดียวสำหรับสถานะการนำทางเป็นเรื่องยาก เนื่องจากมีสถานะภายในของตัวเอง แต่ Nav3 จะให้คุณระบุสถานะของคุณเอง ซึ่งจะช่วยให้คุณควบคุมได้อย่างเต็มที่
สุดท้ายนี้ คุณขอให้เราเพิ่มความยืดหยุ่นและความสามารถในการปรับแต่ง Nav3 จึงมี API ขนาดเล็กลงและแยกออกจากกัน (หรือ "บล็อกการสร้าง") ซึ่งสามารถนำมารวมกันเพื่อสร้างฟังก์ชันการทำงานที่ซับซ้อนได้ แทนที่จะมี API เดียวขนาดใหญ่ Nav3 เองก็ใช้บล็อกการสร้างเหล่านี้เพื่อมอบค่าเริ่มต้นที่สมเหตุสมผลสำหรับกรณีการใช้งานการนำทางที่กำหนดไว้อย่างชัดเจน
แนวทางนี้ช่วยให้คุณทำสิ่งต่อไปนี้ได้
- ปรับแต่งภาพเคลื่อนไหวของหน้าจอได้ทั้งในระดับส่วนกลางและระดับแต่ละหน้าจอ
- แสดงหลายบานหน้าต่างพร้อมกัน และ สร้างเลย์เอาต์ที่ยืดหยุ่นโดยใช้ Scenes API
- แทนที่คอมโพเนนต์ Nav3 ด้วยการติดตั้งใช้งานของคุณเองได้อย่างง่ายดายหากต้องการลักษณะการทำงานที่กำหนดเอง
อ่านเพิ่มเติมเกี่ยวกับการออกแบบและฟีเจอร์ต่างๆ ได้ในบล็อกเปิดตัว
การย้ายข้อมูลจาก Navigation 2
หากคุณใช้ Nav2 อยู่แล้ว โดยเฉพาะอย่างยิ่ง Navigation Compose คุณควรพิจารณาย้ายข้อมูลไปยัง Nav3 เรามีคำแนะนำในการย้ายข้อมูลเพื่อช่วยคุณในเรื่องนี้ ขั้นตอนสำคัญมีดังนี้
- เพิ่มการพึ่งพิง Navigation 3
- อัปเดตเส้นทางการนำทางเพื่อติดตั้งใช้งาน NavKey เส้นทางไม่จำเป็นต้องติดตั้งใช้งานอินเทอร์เฟซนี้เพื่อใช้ Nav3 แต่หากติดตั้งใช้งาน คุณจะใช้ประโยชน์จากฟังก์ชัน rememberNavBackStack ของ Nav3 เพื่อสร้าง Back Stack แบบถาวรได้
- สร้างคลาสเพื่อเก็บและแก้ไขสถานะการนำทาง ซึ่งเป็นที่เก็บ Back Stack
- แทนที่ NavController ด้วยคลาสเหล่านี้
- ย้ายปลายทางจาก NavGraph ของ NavHost ไปยัง entryProvider
- แทนที่ NavHost ด้วย NavDisplay
การทดลองย้ายข้อมูล AI Agent
คุณอาจต้องการทดลองใช้ AI Agent เพื่ออ่านคำแนะนำในการย้ายข้อมูลและทำตามขั้นตอนในโปรเจ็กต์ หากต้องการลองใช้ฟีเจอร์นี้กับ Gemini ในโหมด Agent ของ Android Studio ให้ทำดังนี้
- บันทึกคำแนะนำเวอร์ชัน Markdown นี้ลงในโปรเจ็กต์
- วางพรอมต์นี้ลงใน Agent (แต่ไม่ต้องกด Enter): "ย้ายข้อมูลโปรเจ็กต์นี้ไปยัง Navigation 3 โดยใช้ "
- พิมพ์ @migration-guide.md ซึ่งจะส่งคำแนะนำเป็นบริบทให้กับ Agent
โปรดตรวจสอบการเปลี่ยนแปลงที่ AI Agent ทำอย่างละเอียดเสมอ เนื่องจาก AI Agent อาจทำผิดพลาดได้
เรายินดีรับฟังความคิดเห็นเกี่ยวกับประสิทธิภาพของคุณหรือ Agent ของคุณ โปรด ส่งความคิดเห็นมาที่นี่
สูตรการนำทางที่ใช้งานได้จริงสำหรับสถานการณ์ที่พบบ่อย
เรามีที่เก็บสูตรสำหรับกรณีการใช้งานที่พบบ่อยแต่มีความแตกต่างกันเล็กน้อย ซึ่งจะแสดงวิธีรวม API ของ Nav3 ในลักษณะที่เฉพาะเจาะจง เพื่อให้คุณเลือกหรือแก้ไขสูตรให้ตรงกับความต้องการของคุณได้ หากสูตรใดได้รับความนิยม เราจะพิจารณา "เลื่อนระดับ" ส่วนที่ไม่ซับซ้อนของสูตรนั้นไปยังไลบรารีหลักของ Nav3 หรือไลบรารีส่วนเสริม
ปัจจุบันมีสูตร 19 สูตร ซึ่งรวมถึงสูตรสำหรับกรณีต่อไปนี้
- Back Stack หลายรายการ
- การแยกส่วนและการแทรกทรัพยากร Dependency
- การส่งอาร์กิวเมนต์การนำทางไปยัง ViewModel (รวมถึงการใช้ Koin)
- การแสดงผลลัพธ์จากหน้าจอตามเหตุการณ์และตามสถานะที่แชร์
ปัจจุบันเรากำลังพัฒนาสูตรสำหรับ Deep Link รวมถึงการผสานรวม Koin และวางแผนที่จะเพิ่มสูตรอื่นๆ อีกมากมาย นอกจากนี้ วิศวกรจาก JetBrains ยังได้เผยแพร่สูตรเวอร์ชัน Compose Multiplatform ด้วย
หากคุณมีกรณีการใช้งานที่พบบ่อยซึ่งต้องการให้เราสร้างสูตร โปรด ส่งคำขอสูตร
สรุป
หากต้องการเริ่มต้นใช้งาน Nav3 โปรดดู เอกสาร และ สูตร นอกจากนี้ โปรดคอยติดตามเนื้อหาทางเทคนิคตลอดทั้งสัปดาห์ ซึ่งรวมถึงเนื้อหาต่อไปนี้
- วิดีโอเจาะลึกเกี่ยวกับ API ที่ครอบคลุมการแยกส่วน ภาพเคลื่อนไหว และเลย์เอาต์ที่ปรับเปลี่ยนได้
- เซสชัน AMA ถามตอบทุกข้อสงสัยแบบสดกับวิศวกรผู้สร้าง Nav3
สัปดาห์พิเศษของ Nav3 จะเริ่มขึ้นในวันที่ 1 ธ.ค. 2025
หากพบปัญหา โปรดรายงานปัญหาที่นี่
อ่านต่อ
-
ข่าวสารเกี่ยวกับผลิตภัณฑ์
ในปี 2025 ระบบนิเวศของ Android ได้เติบโตไปไกลกว่าโทรศัพท์มาก ปัจจุบันนักพัฒนาแอปมีโอกาสเข้าถึงอุปกรณ์ที่ใช้งานอยู่มากกว่า 500 ล้านเครื่อง ซึ่งรวมถึงอุปกรณ์พับได้ แท็บเล็ต XR Chromebook และรถยนต์ที่เข้ากันได้
Fahd Imtiaz • ใช้เวลาอ่าน 2 นาที
-
ข่าวสารเกี่ยวกับผลิตภัณฑ์
ในงาน Google I/O 2026 เราได้แนะนำการเปลี่ยนแปลงของ Android จากระบบปฏิบัติการไปเป็นระบบอัจฉริยะ นอกจากนี้ เรายังแสดงให้เห็นวิธีสร้างประสบการณ์การใช้งานอัจฉริยะแบบเนทีฟด้วยระบบ และนำศักยภาพของ AI ของ Google มาไว้ในแอปของคุณ
Jingyu Shi • ใช้เวลาอ่าน 2 นาที
-
ข่าวสารเกี่ยวกับผลิตภัณฑ์
เรายินดีที่จะประกาศว่าการรองรับ Unreal Engine และ Godot อย่างเป็นทางการพร้อมให้บริการสำหรับ Android XR แล้ว นอกจากนี้ เรายังเปิดตัวเครื่องมือใหม่ที่ออกแบบมาเพื่อเพิ่มประสิทธิภาพการทำงานและเปิดใช้ความสามารถใหม่ๆ ของ XR ได้แก่ Android XR Engine Hub และ Android XR Interaction Framework
Luke Hopkins, Ryan Bartley • ใช้เวลาอ่าน 4 นาที
รับข่าวสาร
รับข้อมูลเชิงลึกเกี่ยวกับการพัฒนา Android ล่าสุดส่งตรงถึงกล่องจดหมายของคุณ ทุกสัปดาห์