navigation3

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

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

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

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

Groovy

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

Kotlin

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

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

ความคิดเห็น

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

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

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

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

รุ่น 1.0

เวอร์ชัน 1.0.0-alpha08

27 สิงหาคม 2025

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

ฟีเจอร์ใหม่

  • เพิ่มเป้าหมาย Kotlin MultiPlatform (KMP) ใหม่ลงในอาร์ติแฟกต์ Navigation3 Runtime Navigation3 Runtime ตอนนี้รองรับแพลตฟอร์มต่อไปนี้ทั้งหมดแล้ว ได้แก่ JVM (Android และเดสก์ท็อป), Native (Linux, iOS, watchOS, macOS, MinGW) และเว็บ (JavaScript, WasmJS) (I55078, b/424410398, b/419294028, b/419046226) หมายเหตุ: วิธีนี้ไม่ได้ระบุเป้าหมาย KMP สำหรับอาร์ติแฟกต์ Navigation3 UI ในแพลตฟอร์มอื่นๆ คุณจะต้องติดตั้งใช้งาน NavDisplay ที่กำหนดเองของคุณเอง หากต้องการให้เราเพิ่มการรองรับ โปรดโหวตปัญหาของ Jetbrains ที่นี่และติดตามความคืบหน้าเพื่อรับการสนับสนุนเพิ่มเติมที่นั่น
  • ตอนนี้ออบเจ็กต์ NavDisplayInfo เป็นแบบสาธารณะแล้ว และสามารถใช้เพื่อดึงรายการที่มองเห็นได้จาก NavDisplay (Ibc91f)

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

  • เพิ่ม NavBackStackSerializer ใหม่เพื่อใช้ร่วมกับ rememberNavBackStack ในการคืนค่าสถานะ rememberNavBackStack() ยังรับ SavedStateConfiguration ที่ใช้เพื่อระบุการกำหนดค่าของคุณเองได้ด้วย (I2f4d2, I4cd58, b/420443609)

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

  • แก้ไขปัญหาที่การไปยังส่วนต่างๆ ทำให้เกิดเหตุการณ์วงจรที่ไม่ถูกต้อง (I8bf6d, b/425901162, b/434109022)

ปัญหาที่ทราบ

  • I8bf6d ได้แนะนำข้อบกพร่องที่ทำให้วงจรชีวิตอิงตามฉากแทนที่จะเป็นรายการแต่ละรายการ ซึ่งทำให้วงจรชีวิตสำหรับฉากที่มีหลายหน้าจอใช้งานไม่ได้ และเราได้แก้ไขปัญหานี้แล้วสำหรับการเผยแพร่ครั้งถัดไป (b/440145700)

เวอร์ชัน 1.0.0-alpha07

13 สิงหาคม 2025

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

การอัปเดต MinSdk

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

  • ตอนนี้ SavedStateNavEntryDecorator ใช้ SaveableStateRegistry ที่สร้างขึ้นใน SaveableStateProvider เพื่อบันทึกและกู้คืนสถานะ (If8d9a)
  • ตอนนี้ predictivePopTransitionSpec จะมีขอบการปัดเป็นพารามิเตอร์ ซึ่งช่วยให้คุณปรับแต่งการเปลี่ยนผ่านตามขอบที่ผู้ใช้เริ่มท่าทางสัมผัสย้อนกลับแบบคาดการณ์ (I753a8)

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

  • แก้ไขปัญหาที่ทำให้ระบบคำนวณฉากที่กำหนดเองซ้ำไม่สิ้นสุดเนื่องจากระบบจำฉากล่าสุดไม่ได้ (I7ba84, b/418153031)

การอัปเดตการขึ้นต่อกัน

เวอร์ชัน 1.0.0-alpha06

30 กรกฎาคม 2025

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

การอัปเดตการขึ้นต่อกัน

เวอร์ชัน 1.0.0-alpha05

2 กรกฎาคม 2025

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

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

  • ตอนนี้สถานะของ NavEntry จะอิงตามรายการตกแต่งปัจจุบันที่ส่งไปยัง NavDisplay อย่างเคร่งครัด ซึ่งหมายความว่าควรสลับ Decorator ตาม Back Stack ในกรณีที่มี Back Stack หลายรายการเพื่อรักษาสถานะของ NavEntry ใน Back Stack ไม่เช่นนั้น ระบบจะล้างสถานะราวกับว่ามีการป๊อปรายการออก (แทนที่จะเป็นการสลับ) (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