คำแนะนำในการย้ายข้อมูล
- คู่มือการย้ายข้อมูลจาก Navigation 2 ไปยัง Navigation 3: คำแนะนำแบบทีละขั้นตอนในการ ย้ายข้อมูลแอปพลิเคชัน Android จาก Navigation 2 ไปยัง Navigation 3 ซึ่งครอบคลุม การอัปเดตการอ้างอิง การเปลี่ยนแปลงเส้นทาง การจัดการสถานะ และการแทนที่ คอมโพเนนต์ UI
ข้อกำหนด
- คำแนะนำ: ย้ายข้อมูลไปยังการนำทางที่ปลอดภัยประเภทใน Compose: คำแนะนำแบบทีละขั้นตอน ในการย้ายข้อมูลแอปพลิเคชัน Android จากการนำทางที่อิงตามสตริงไปยัง การนำทางที่ปลอดภัยประเภทใน Jetpack Compose โดยใช้ Jetpack Navigation 2
เอกสารประกอบสำหรับนักพัฒนาซอฟต์แวร์
- *การนำทาง 3 ค้นหาเอกสารประกอบเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับพื้นฐาน การบันทึกและการจัดการสถานะการนำทาง การแยกโค้ดการนำทางออกเป็นโมดูล การสร้าง เลย์เอาต์ที่กำหนดเองโดยใช้ Scene การเคลื่อนไหวระหว่างปลายทาง หรือการใช้ ตรรกะหรือ Wrapper กับปลายทาง
สูตร
ตัวอย่างโค้ดที่แสดงรูปแบบที่พบบ่อย
การใช้งาน API ขั้นพื้นฐาน
- พื้นฐาน: แสดงการใช้งาน API ขั้นพื้นฐานส่วนใหญ่
- สแต็กย้อนกลับที่บันทึกได้: แสดงการใช้งาน API พื้นฐานที่มีสแต็กย้อนกลับแบบถาวร
- DSL ของผู้ให้บริการรายการ: แสดงการใช้งาน API ขั้นพื้นฐานโดยใช้ DSL ของ entryProvider
UI ทั่วไป
- UI ทั่วไป: แสดงวิธีใช้รูปแบบ UI การนำทางทั่วไป ด้วยแถบนำทางด้านล่างและหลายๆ Back Stack โดยที่แต่ละ แท็บในแถบนำทางจะมีประวัติการนำทางของตัวเอง
Deep Link
- พื้นฐาน: แสดงวิธีแยกวิเคราะห์ URL ของ Deep Link จาก Intent ของ Android เป็นคีย์การนำทาง
- ขั้นสูง: แสดงวิธีจัดการ Deep Link ด้วย Back Stack สังเคราะห์และลักษณะการทำงานของการนำทาง "ขึ้น" ที่ถูกต้อง
ฉาก
ใช้ฉากในตัว
- กล่องโต้ตอบ: แสดงวิธีสร้างกล่องโต้ตอบ
สร้างฉากที่กำหนดเอง
- BottomSheet: แสดงวิธีสร้างปลายทาง BottomSheet
- ฉากรายการ-รายละเอียด: แสดงวิธีใช้เลย์เอาต์รายการ-รายละเอียดแบบปรับเปลี่ยนได้โดยใช้ Navigation 3 Scenes API
- Scene แบบ 2 บานหน้าต่าง: แสดงวิธีใช้เลย์เอาต์แบบ 2 บานหน้าต่างที่ปรับเปลี่ยนตามพื้นที่ว่าง โดยใช้ Navigation 3 Scenes API
ปรับตามวัสดุ
- รายการ-รายละเอียดของ Material: แสดงวิธีใช้เลย์เอาต์รายการ-รายละเอียดแบบปรับอัตโนมัติ โดยใช้ Material 3 Adaptive
- แผงสนับสนุนของ Material: แสดงวิธีใช้เลย์เอาต์แผงสนับสนุนแบบปรับอัตโนมัติโดยใช้ Material 3 Adaptive
ภาพเคลื่อนไหว
- ภาพเคลื่อนไหว: แสดงวิธีลบล้างภาพเคลื่อนไหวเริ่มต้นสำหรับปลายทางทั้งหมดและปลายทางเดียว
ลักษณะการทำงานทั่วไปของ Back Stack
- สแต็กย้อนกลับหลายรายการ: แสดงวิธีสร้างเส้นทางระดับบนสุดหลายเส้นทาง โดยแต่ละเส้นทางมีสแต็กย้อนกลับของตัวเอง เส้นทางระดับบนสุดจะแสดงใน แถบนำทางเพื่อให้ผู้ใช้สลับไปมาระหว่างเส้นทางได้ ระบบจะเก็บสถานะไว้สำหรับ แต่ละเส้นทางระดับบนสุด และสถานะการนำทางจะยังคงอยู่เมื่อมีการเปลี่ยนแปลงการกำหนดค่าและ กระบวนการสิ้นสุด
การนำทางแบบมีเงื่อนไข
- การนำทางแบบมีเงื่อนไข: เปลี่ยนไปใช้โฟลว์การนำทางอื่นเมื่อตรงตามเงื่อนไข เช่น สำหรับการตรวจสอบสิทธิ์หรือการเริ่มต้นใช้งานครั้งแรกของผู้ใช้
สถาปัตยกรรม
- โค้ดการนำทางแบบแยกส่วน (Hilt): แสดงวิธีแยกโค้ดการนำทางออกเป็นโมดูลแยกต่างหากโดยใช้ Hilt หรือ Dagger สำหรับ DI
- โค้ดการนำทางแบบแยกส่วน (Koin): แสดงวิธีแยกโค้ดการนำทางออกเป็นโมดูลแยกต่างหากโดยใช้ Koin สำหรับ DI
การทำงานกับ ViewModel
การส่งอาร์กิวเมนต์การนำทาง
- ViewModel พื้นฐาน: ระบบจะส่งอาร์กิวเมนต์การนำทางไปยัง
ViewModelที่สร้างขึ้นโดยใช้viewModel()
การแสดงผลลัพธ์
- การแสดงผลลัพธ์เป็นกิจกรรม: การแสดงผลลัพธ์เป็นกิจกรรมสำหรับเนื้อหาใน
NavEntryอื่น - การแสดงผลลัพธ์เป็นสถานะ: การแสดงผลลัพธ์เป็นสถานะที่จัดเก็บไว้ใน
CompositionLocal