navigation3

  
Navigation 3 เป็นไลบรารีการนำทางใหม่ที่ออกแบบมาให้ทำงานร่วมกับ Compose
อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า รุ่นอัลฟ่า
2 กรกฎาคม 2025 - - - 1.0.0-alpha05

การประกาศทรัพยากร Dependency

หากต้องการเพิ่มการอ้างอิงใน Navigation3 คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงใน โปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google

เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle สำหรับแอปหรือโมดูลของคุณ

Groovy

dependencies {
    implementation "androidx.navigation3.navigation3-runtime:1.0.0-alpha05"
    implementation "androidx.navigation3.navigation3-ui:1.0.0-alpha05"
}

Kotlin

dependencies {
    implementation("androidx.navigation3.navigation3-runtime:1.0.0-alpha05")
    implementation("androidx.navigation3.navigation3-ui:1.0.0-alpha05")
}

ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์

ความคิดเห็น

ความคิดเห็นของคุณจะช่วยให้ Jetpack ทำงานได้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว

สร้างปัญหาใหม่

ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา

ไม่มีบันทึกประจำรุ่นสำหรับอาร์ติแฟกต์นี้

รุ่น 1.0

เวอร์ชัน 1.0.0-alpha05

2 กรกฎาคม 2025

androidx.navigation3:navigation3-*:1.0.0-alpha05 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha05 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลงลักษณะการทำงาน

  • ตอนนี้สถานะของ NavEntry จะอิงตามรายการตกแต่งปัจจุบันที่ส่งไปยัง NavDisplay อย่างเคร่งครัด ซึ่งหมายความว่าควรสลับ Decorator ตามสแต็กย้อนกลับในกรณีที่มีสแต็กย้อนกลับหลายรายการเพื่อรักษาสถานะของ NavEntry ในสแต็กย้อนกลับ ไม่เช่นนั้น ระบบจะล้างสถานะราวกับว่ามีการป๊อปรายการ (แทนที่จะเป็นการสลับ) (I7a759, b/428033667)

เวอร์ชัน 1.0.0-alpha04

18 มิถุนายน 2025

androidx.navigation3:navigation3-*:1.0.0-alpha04 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha04 มีการเปลี่ยนแปลงเหล่านี้

การเปลี่ยนแปลง API

  • ตอนนี้ NavEntry.content เป็นแบบส่วนตัวแล้ว หากต้องการเรียกใช้NavEntryเนื้อหา ให้เรียกใช้NavEntry.Content() API ใหม่ซึ่งไม่จำเป็นต้องใช้พารามิเตอร์ key ในการเรียกใช้ (Icd0fd, b/420991203)
  • ตอนนี้ NavEntry.key เป็นฟิลด์ส่วนตัวแล้ว NavEntry และสถานะที่เกี่ยวข้องควรระบุโดยฟิลด์ contentKey ใหม่ซึ่งสร้างจาก Lambda contentKeyFactory ใหม่และค่าเริ่มต้นเป็นแฮชที่บันทึกได้ซึ่งสร้างจาก NavEntry.key (I81a6c, b/422001357, b/420991203 I2d7d4, b/420991203, b/422841812)

การเปลี่ยนแปลงการขึ้นต่อกัน

  • ตอนนี้ Navigation3 ขึ้นอยู่กับอาร์ติแฟกต์ androidx.navigationevent.compose ใหม่แล้ว

เวอร์ชัน 1.0.0-alpha03

4 มิถุนายน 2025

androidx.navigation3:navigation3-*:1.0.0-alpha03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha03 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • Navigation3 จะไม่ล้างสถานะ Decorator สำหรับ backStacks ที่มีการสลับออกและแทนที่ด้วยอินสแตนซ์ backStack อื่นอีกต่อไป (I28a42, b/415076044)

เวอร์ชัน 1.0.0-alpha02

23 พฤษภาคม 2025

androidx.navigation3:navigation3-*:1.0.0-alpha02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha02 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาเกี่ยวกับ SavedStateNavEntryDecorator ซึ่งทำให้เกิดการชนกันสำหรับคลาสข้อมูลต่างๆ ที่มีค่าพร็อพเพอร์ตี้เดียวกัน (b/418070648, Iff4775)
  • แก้ไขปัญหาคลาสที่ขาดหายไปซึ่งอาจทำให้เกิดข้อขัดข้องเมื่อเรียกใช้โดยไม่ได้ประกาศการอ้างอิงที่ชัดเจน (b/419049149, I4b4ed)

เวอร์ชัน 1.0.0-alpha01

20 พฤษภาคม 2025

androidx.navigation3:navigation3-*:1.0.0-alpha01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้

ฟีเจอร์ใหม่

Navigation3 เป็นไลบรารีการนำทางใหม่ที่สร้างขึ้นเพื่อจัดการการนำทางในแอป Jetpack Compose โดยเฉพาะ อาร์ติแฟกต์ androidx.navigation3.runtime เป็นส่วนประกอบพื้นฐาน ส่วนอาร์ติแฟกต์ androidx.navigation3.ui จะเป็นเลเยอร์ UI ผ่าน NavDisplay API นักพัฒนาแอปสามารถระบุสถานะของตนเองโดยตรงไปยังฟังก์ชันที่ใช้ร่วมกันได้ของ NavDisplay ซึ่งจะเปลี่ยนเนื้อหาตามการเปลี่ยนแปลงในสถานะของนักพัฒนาแอป

@Serialiable object Home : NavKey
@Serialiable object Chat : NavKey

val backStack = rememberNavBackStack(Home)

NavDisplay(backStack, entryProvider = entryProvider {
  entry<Home> {
    Column {
      Text(Home)
      Button(onClick = { backStack.add(Chat) } ) {
        Text(Go to Chat)
      } 
    }
  }
  entry<Chat> { /* My Composable Content */ }
})

ดูข้อมูลเพิ่มเติมได้ที่คู่มือ Navigation3