navigation3

  
‫Navigation 3 היא ספריית ניווט חדשה שמיועדת לעבודה עם Compose.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫23 בספטמבר 2026 1.2.0 - - ‎1.3.0-alpha01

הצהרה על יחסי תלות

כדי להוסיף תלות ב-navigation3, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.

אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:

Groovy

dependencies {
    implementation "androidx.navigation3:navigation3-runtime:1.3.0-alpha02"
    implementation "androidx.navigation3:navigation3-ui:1.3.0-alpha02"
}

Kotlin

dependencies {
    implementation("androidx.navigation3:navigation3-runtime:1.3.0-alpha02")
    implementation("androidx.navigation3:navigation3-ui:1.3.0-alpha02")
}

מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.

משוב

המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.

יצירת דיווח על בעיה חדשה

מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.

גרסה 1.3

גרסה ‎1.3.0-alpha01

‫23 בספטמבר 2026

‫androidx.navigation3:navigation3-*:1.3.0-alpha01 מופץ. גרסה ‎1.3.0-alpha01 מכילה את השמירות האלה.

** תיקוני באגים **

  • תוקנה העברת אנימציה של חיזוי החזרה ב-NavDisplay על ידי מעבר ל-DeferredAnimatedContent ופתרון בעיות בהעברת המעבר. I145eaedd b/430807423

אין הערות לגבי הגרסה של הארטיפקט הזה.

גרסה 1.2.0

‫23 בספטמבר 2026

‫androidx.navigation3:navigation3-*:1.2.0 מופץ. גרסה 1.2.0 מכילה את השמירות האלה.

גרסה 1.2.0 יציבה עכשיו!

שינויים חשובים מאז גרסה 1.1.0

Result API

  • ה-API החדש הזה מאפשר להעביר תוצאות בין NavEntries באמצעות ResultEventBus שסופק על ידי LocalResultEventBus ו-ResultEventBusNavEntryDecorator.
  • נוסף rememberResultEventBus כדי לתמוך בהעלאה של ResultEventBus מחוץ ל-ResultEventBusNavEntryDecorator והעברה שלו אל rememberResultEventBusNavEntryDecorator.
  • אפשר לגשת לתוצאות שהועברו כסטטוס באמצעות ResultEventBus#conflateAsState או לאסוף אותן כרצף של תוצאות באמצעות ResultEffect.

Deep Link API

‫Navigation3 תומך עכשיו בקישורי עומק של Kotlin Multiplatform ‏ (KMP) ב-androidx.navigation3.runtime.deeplink דרך DeepLinkRequest,‏ DeepLinkUri ו-DeepLinkMatcher.

  • ‫DeepLinkRequest ו-RequestExtras: מייצגים בקשה לקישור עומק שנוצרה מ-DeepLinkUri, ממחרוזת URI או מ-Intent ל-Android. אפשר לצרף מטא-נתונים נוספים של בקשות באמצעות מאגר RequestExtras בטוח-סוגים שנבנה באמצעות requestExtras DSL ו-RequestExtrasKey<T>.
  • ‫DeepLinkMatcher: מייצג קישור עומק שאפשר להתאים לו DeepLinkRequest. כל מופע של התאמה משויך למקש הניווט שתומך בקישור העומק הזה. אפשר לשייך מקש ניווט לכמה התאמות. קריאה ל-DeepLinkMatcher.match תחזיר MatchResult שמכיל את מקש הניווט המשויך אם ההתאמה תצליח. יש שתי הטמעות ברירת מחדל של DeepLinkMatcher: ‏ UriDeepLinkMatcher להתאמת קישורי עומק על סמך Uri, ו-StaticKeyDeepLinkMatcher להתאמת קישורי עומק רק עם DeepLinkMatcher.Filter שתואמים לפי ערך בוליאני.
  • ‫BackStackMatcher: DeepLinkMatcher כדי ליצור מקבץ פעילויות קודמות (back stack) סינתטי אחרי התאמה מוצלחת של קישור עומק. אפשר ליצור BackStackMatcher באמצעות פונקציית התוסף DeepLinkMatcher.withBackStack.

טיפול בתנועת חיזוי החזרה

  • הוספנו את NavigationBackHandler ואת rememberNavigationEventState כדי לפשט את הקישור של SceneState לטיפול בחיזוי החזרה (onBackCompleted ו-onBackCancelled). כך רכיבי ממשק משתמש מותאמים אישית יכולים לתמוך בניווט לאחור רגיל ובמחוות חיזוי החזרה בלי לחשב ידנית את הדלתאות של מקבץ הפעילויות הקודמות.
  • שיפור המעברים של חיזוי החזרה, כולל תמיכה בתנועות חיזוי חזרה שמופעלות באמצע האנימציות של התנועה קדימה.

שינויים אחרים

  • ‫NavEntry.contentKey מוגדר עכשיו כברירת מחדל כצירוף של key.toString() ו-key::class.toString(), וכך נמנעות התנגשויות בין מפתחות data object שחולקים את אותו שם פשוט בממשקים שונים.
  • EntryProvider מעכשיו מתעדפת התאמה על סמך מקרים ספציפיים של אירועים מרכזיים ולא על סמך סוגי אירועים מרכזיים.
  • נוסף בדיקת lint כדי לוודא שההטמעות של Scene הן data classes או שהן מטמיעות את equals ואת hashCode.

גרסה ‎1.2.0-rc01

‫9 בספטמבר 2026

‫androidx.navigation3:navigation3-*:1.2.0-rc01 מופץ. גרסה ‎1.2.0-rc01 מכילה את השמירות האלה.

תיקוני באגים

  • אי אפשר להשתמש בשמות כפולים של פלייס הולדרים בתבניות של URI לקישורי עומק. (I8985c, ‏ b/522343165)

גרסה ‎1.2.0-beta01

‫26 באוגוסט 2026

‫androidx.navigation3:navigation3-*:1.2.0-beta01 מופץ. גרסה ‎1.2.0-beta01 מכילה את השמירות האלה.

שינויים ב-API

  • בוצע רפקטורינג של DeepLinkRequest.extras מ-Map<String, Any> לסוג חדש של מחלקה בטוחה מסוג map‏ RequestExtras שמאחסנת זוגות של RequestExtrasKey<T> עד T. אפשר ליצור מופע של RequestExtras באמצעות ה-DSL של requestExtras. (Ic929d, ‏ b/543883369)

תיקוני באגים

  • נפתרה בעיה שגרמה לכך שאי אפשר היה להפעיל אנימציה של תנועות ניווט חזויות אחורה שהופעלו במהלך מעבר קדימה בתגובה להתקדמות ההחלקה. האנימציה של החזרה החזויה תפעל ותושלם כמו שצריך. (Icdcb0, ‏ b/456218398)
  • נוסף בדיקת lint כדי לוודא שהטמעות של Scene הן מחלקות נתונים, או שהן מטמיעות equals ו-hashcode כדי לוודא שנעשה שימוש באותו Scene כשמתאים. (Ibdf0d, ‏ b/542316099)
  • תג NavEntry.contentKey מוגדר עכשיו כברירת מחדל לשילוב של key.toString() ו-key::class.toString(). כך אפשר לוודא שאובייקטים של נתונים עם אותו שם אבל עם הטמעה של ממשקים שונים לא יקבלו יותר את אותו contentKey. עם זאת, הפלטפורמה של JS‏ key::class מחזירה רק שם מחלקה פשוט במקום שם מוגדר במלואו, ולכן הפלטפורמה של JS עדיין צריכה להטמיע contentKey מותאם אישית לאובייקטים של נתונים עם שמות כפולים. (I1fbbb, b/512534342)
  • תוקנה השגיאה IllegalArgumentException שנוצרה על ידי SaveableStateProvider עבור מפתחות כפולים שנעשה בהם שימוש במהלך ניווט לאחור מהיר כשמספר מעברים של חלונות קופצים נמצאים בתהליך. (I4d728, ‏ b/516312097)

גרסה ‎1.2.0-alpha07

‫29 ביולי 2026

‫androidx.navigation3:navigation3-*:1.2.0-alpha07 מופץ. גרסה ‎1.2.0-alpha07 מכילה את השמירות האלה.

שינויים ב-API

  • נוספה מחלקה מופשטת WrappedMatchResult כדי לעטוף עוד DeepLinkMatcher.MatchResult. כך אפשר להציג תוצאות התאמה מותאמות אישית בשכבות אחת על גבי השנייה. (I7d4dc, ‏ b/470282247)
  • נוספה מחלקה חדשה BackStackMatcher שמקבלת שני פרמטרים: מופע של matcher ו-lambda של builder שמספק את תוצאת ההתאמה של matcher הקלט ומחזיר מקבץ פעילויות קודמות (back stack). אם יש התאמה מוצלחת, BackStackMatcher מחזירה את הערך BackStackMatchResult שהוא הרחבה של WrappedMatchResult, שמכיל את תוצאת ההתאמה המקורית יחד עם מקבץ פעילויות קודמות (back stack) שנבנה באמצעות ה-lambda. אפשר ליצור את BackStackMatcher רק באמצעות פונקציית התוסף החדשה DeepLinkMatcher.withBackStack. ‫(Ibf987, ‏ b/470282247)

  • נוספה מחלקה מופשטת DeepLinkSerializer שמרחיבה את KSerializer כדי לקודד ולפענח את value : T כ-String. אפשר להשתמש ב-DeepLinkSerializer כדי לבצע סריאליזציה של ארגומנטים של קישורי עומק שהם לא פרימיטיביים. תואם ל-rememberSaveable ול-rememberNavBackStack. ‫(Id3c9f, ‏ b/470282247)

  • ‫DeepLinkMatcher נוסף פרמטר סוג שני out R : DeepLinkMatcher.MatchResult<T> כדי שמפתחים יוכלו לגשת למאפיינים של מחלקת המשנה MatchResult שהוחזרה על ידי DeepLinkMatcher.match() בלי לבצע המרה של סוג הנתונים. ‫(I693d3, ‏ b/470282247)

  • הערך של DeepLinkMatcher.MatchResult's T upper bound השתנה מ-Any? ל-Any. (I6bf1a)

  • שדה ה-constructor‏ DeepLinkRequest uri מוגדר עכשיו כ-null כברירת מחדל. השם של uriString בבונה המשני השתנה ל-uri. (Ia0f14, ‏ b/522194187)

תיקוני באגים

  • ‫ResultEffect משתמש עכשיו ב-rememberUpdatedState כדי לתעד את onResult lambda העדכני. (I7d2a3, ‏ b/531709234)
  • תוקן התאמה של קישורי עומק לפלחים ריקים של נתיבים. אם סוג הארגומנט הוא String, נתיב ריק ייחשב כערך מחרוזת ריקה. אחרת, הנתיב הריק יפורש כאילו לא סופק ערך, והמערכת תחזור לערך ברירת המחדל. אם לא מוגדר ערך ברירת מחדל, ההתאמה תיכשל. (I56575, b/535298128)
  • הוספנו תמיכה בערכי שאילתה ריקים ב-DeepLinkRequest.uri. אם הארגומנט הוא מסוג String, הערך הריק יטופל כמחרוזת ריקה מילולית. אחרת, הערך הריק ייחשב כערך שלא סופק, והמערכת תנסה לחזור לערך ברירת המחדל. אם לא מוגדר ערך ברירת מחדל, ההתאמה תיכשל. (I30343, b/535127459)
  • EntryProvider מעכשיו מתעדפת התאמה על סמך מקרים ספציפיים של אירועים מרכזיים ולא על סמך סוגי אירועים מרכזיים. (Ib5ec9, b/533331924)
  • ‫SceneState מחשב עכשיו בצורה נכונה סצנות קודמות החל מהסצנה העליונה ביותר שאינה שכבת-על. ‫(I91915, ‏ b/513630541)

גרסה ‎1.2.0-alpha06

‫15 ביולי 2026

‫androidx.navigation3:navigation3-*:1.2.0-alpha06 מופץ. גרסה ‎1.2.0-alpha06 מכילה את השמירות האלה.

תיקוני באגים

  • תוקן UriDeepLinkMatcher תיעוד בנושא חלקי URI כדי להבהיר שחלקים עם תווים כלליים יתאימו לכל קלט, אבל הקלט לא יחולץ כארגומנטים. (I5ad9b, ‏ b/524677091)
  • תוקנה בעיה שגרמה לכך ש-UriDeepLinkMatcher לא התאים לבקשה אם תבנית ה-URI לא הכילה סכימה או לא התחילה בקו נטוי כפול. לדוגמה, www.example.com/home יתאים עכשיו ל-http://www.example.com/home. (Ia6b65, b/522791926)

גרסה ‎1.2.0-alpha05

‫1 ביולי 2026

‫androidx.navigation3:navigation3-*:1.2.0-alpha05 מופץ. גרסה ‎1.2.0-alpha05 מכילה את השמירות האלה.

New API

  • נוסף API‏ rememberResultEventBus שמחזיר ResultEventBus שאפשר להעביר אל rememberResultEventBusNavEntryDecorator. הפעולה הזו מאפשרת להעלות את ResultEventBus מחוץ ל-ResultEventBusNavEntryDecorator. (Ia655b, ‏ b/516995400)

DeepLinkRequest

  • נוספו שני קונסטרוקטורים שתואמים ל-KMP – אחד שמקבל DeepLinkUri ואחד שמקבל מחרוזת URI גולמית. (I3c088, ‏ b/513200887, ‏ b/522194187)
  • (Android בלבד) נוסף יצרן שמקבל Intent. (Ia0498, ‏ b/513200887, ‏ b/522194187)
  • לכל הקונסטרקטורים יש שדה נוסף extras לצירוף Map<String, Any> של מידע נוסף על הבקשה. ‫(If81d5, ‏ b/513200887)
  • נוסף requestExtras dsl חדש כדרך בטוחה מבחינת סוגים ליצירת מפה של תוספים. שפת ה-DSL מספקת פונקציה put לאחסון זוגות של RequestExtrasKey עד Any. אפשר להשתמש בפונקציית התוסף Map<String, Any>.get(key) כדי לקרוא מהמפה באמצעות RequestExtrasKey(I5091c, b/513200887)
  • (Android בלבד) נוספו הפונקציות ActionExtrasKey ו-actionExtra ליצירת מפת תוספים עם ActionExtrasKey. (Id0c90, [b/513200887]
  • הוספנו פונקציה של MimeTypeExtrasKey ושל mimeTypeExtra כדי ליצור מפת תוספים עם MimeTypeExtrasKey. (I85131, ‏ b/513200887)

DeepLinkMatcher

  • נוספו הפונקציות DeepLinkMatcher.mimeTypeFilter ו-DeepLinkMatcher.actionFilter ליצירת DeepLinkMatcher.Filters שמסננות את DeepLinkRequest לפי mimeType או action (ב-Android בלבד). שני המסננים מתאימים לפי שוויון מחרוזות והם לא תלויי-רישיות. (Ie7e67, ‏ b/513191950)

שינויים ב-API

DeepLinkRequest

  • הסרת הפונקציה fromAction. כדי ליצור בקשה שמשויכת לפעולה, משתמשים בשדה DeepLinkRequest.extras החדש.(Id0c90, b/513200887)
  • הוסרה פונקציית המפעל fromMimeType. כדי ליצור בקשה שמשויכת ל-mimeType, משתמשים בשדה החדש DeepLinkRequest.extras. (I85131, ‏ b/513200887)
  • (Android בלבד) הוסרה פונקציית האיפוס להגדרות המקוריות fromIntent. הוחלף על ידי בנאי חדש שמקבל כוונת פעולה ומפת תוספים. (Ia0498, ‏ b/513200887, ‏ b/522194187)
  • הוסרו פונקציות המפעל fromUri ו-fromUriString. הוחלפו על ידי קונסטרוקטורים חדשים שמקבלים DeepLinkUri או מחרוזת URI גולמית. (Id5b6f, b/522194187)
  • המחלקות DeepLinkMatcher ו-DeepLinkMatcher.MatchResult ומחלקות המשנה שלהן מקבלות עכשיו T קו-וריאנטי (out T), כך שלא יהיה צורך בהמרת טיפוסים של מפתחות היררכיים כשמשתמשים בהן עם Matchers. (I1e453, b/525094876)
  • פרמטר ה-constructor‏ UriMatchResult למיפוי ארגומנטים מוגדר עכשיו כברירת מחדל למיפוי ריק. (I3acdd)
  • המחלקה המופשטת DeepLinkMatcher.Filter היא עכשיו ממשק פונקציונלי. שדה ה-constructor‏ filter מוסר, ובמקומו צריך להעביר אותו ישירות בתת-הסיווג. (I9eb7d, b/522194187)

תיקוני באגים

  • תוקנה בעיה שגרמה לכך שרשומה שנפתחה בחלון קופץ נעלמה מיד כשפותחים בחלון קופץ רשומה שמכילה מטא-נתונים מוטמעים עם ערכי lambda. (Idb872, ‏ b/520494430)
  • תוקן UriDeepLinkMatcher כך שיחזיר ערך null‏ UriMatchResult במקום להפעיל את MissingFieldException כשחסרים ארגומנטים נדרשים במהלך ההתאמה. (I5322f, ‏ b/524663005)
  • אפשר להתאים UriDeeplinkMatcher שמכיל URI עם סכימת https רק לבקשות שגם להן יש סכימת https. (Ibfe22, ‏ b/522304329)
  • תיקון UriDeepLinkMatcher כדי לזהות נכון את סכימת http כהתאמה חיובית ל-https כשמתאימים DeepLinkRequest ל-UriDeepLinkMatcher. ‫(I3a62b, ‏ b/518804264)
  • DeepLinkMatcher.MatchResult עכשיו פונקציית ההשוואה מחזירה 0 כברירת מחדל כששתי תוצאות שוות. (I48ddb, ‏ b/518841353)
  • מעכשיו, אם בקשת ההתאמה נכשלת בגלל ארגומנטים נדרשים שחסרים, הפונקציה UriDeepLinkMatcher תחזיר ערך null UriMatchResult במקום להפעיל חריגה. (I669a7, ‏ b/470282247, ‏ b/512923412)

גרסה ‎1.2.0-alpha04

‫3 ביוני 2026

‫androidx.navigation3:navigation3-*:1.2.0-alpha04 מופץ. גרסה ‎1.2.0-alpha04 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה בהנפשה של שכבות-על שבה שכבות-על מוטמעות כמו ModalBottomSheet מונפשות מחדש באופן בלתי צפוי כששכבות-העל שמעליהן מוקפצות. (Ia2b9e, b/502624496)

גרסה ‎1.2.0-alpha03

‫19 במאי 2026

‫androidx.navigation3:navigation3-*:1.2.0-alpha03 מופץ. גרסה ‎1.2.0-alpha03 מכילה את השמירות האלה.

תכונות חדשות

‫Navigation 3 תומך עכשיו בקישורי עומק עם DeepLinkRequest ו-DeepLinkMatcher:

  • DeepLinkRequest קישור עמוק עם בקשה שמכיל DeepLinkUri ו-mimeType או פעולה אופציונליים(ב-Android בלבד). בנוסף למחלקה החדשה, יש פונקציות נלוות ליצירת מופע עם uri, ‏ mimeType או action. בפלטפורמת Android יש גם כלי עזר ליצירת בקשה מ-Intent. (Iaaac9, ‏ b/470282247)

    val uriOnlyRequest = DeepLinkRequest.fromUriString("https://sampledeeplink.com/home")
    val uriAndMimeRequest = DeepLinkRequest.fromUriString(
      "https://sampledeeplink.com/user/profile?id=123",
      "image/png"
    )
    
  • ‫DeepLinkMatcher מייצג קישור עומק שאפשר להתאים לו DeepLinkRequest. כל מופע של התאמה משויך למקש הניווט שתומך בקישור העומק הזה. אפשר לשייך מקש ניווט לכמה התאמות. קריאה ל-DeepLinkMatcher.match תחזיר MatchResult שמכיל את מקש הניווט המשויך אם ההתאמה מצליחה. יש שתי הטמעות ברירת מחדל של DeepLinkMatcher: ‏ UriDeepLinkMatcher להתאמת קישורי עומק על סמך Uri, ו-StaticKeyDeepLinkMatcher להתאמת קישורי עומק רק עם DeepLinkMatcher.Filter שתואמים ל-Boolean. ‫(I3798e, ‏ b/470282247)

  • UriDeepLinkMatcher הטמעה מבוססת-הנחות של DeepLinkMatcher שמטפלת בקישור עומק על ידי התאמה של DeepLinkUri למפתח ניווט ניתן לסריאליזציה. היא תומכת בארגומנטים של קישורי עומק מסוגים פרימיטיביים או באוסף של פרימיטיבים כמו רשימות, מערכים וקבוצות. (I1520b, ‏ b/470282247)

    @Serializable
    data class UserKey(val id: Int): NavKey
    
    // declare a deep link supported by UserKey
    val userMatcher = UriDeepLinkMatcher(
      uriPattern = "www.sampledeeplink.com/user?userId={id}",
      serializer = serializer<UserKey>()
    )
    
    // handle a requested deep link with fallback key
    val key = userMatcher.match(deepLinkRequest)?.key ?: HomeKey
    
  • נוסף DeepLinkUri, שהוא גרסת kotlin-multiplatform של android.net.Uri (Id4725, b/470282247)

שינויים ב-API

  • הועבר ל-compileSdk 37 כדי להתאים ל-compileSdk של Compose

תיקוני באגים

  • תוקנה הבעיה שקשורה ל-AnimatedBottomSheetSampleIllegalArgumentException כשמוצגות כמה שכבות-על. הדוגמה SceneStrategy תחשב עכשיו נכון את הערך האחרון שאינו OverlayScene ותציג אותו מתחת לכל הסצנות של שכבות העל. ‫(If2281, b/506733412)
  • הועלתה התלות NavigationEvent לגרסה 1.1.1, שמסירה את NavigationEventHandler ללא פעולה כשנמצאים במצב בדיקה, כדי להפעיל את התכונה 'חזרה עם תצוגה מקדימה' בגרסאות טרום-השקה של Android Studio. (I487fd)

גרסה ‎1.2.0-alpha02

‫22 באפריל 2026

‫androidx.navigation3:navigation3-*:1.2.0-alpha02 מופץ. גרסה ‎1.2.0-alpha02 מכילה את השמירות האלה.

שינויים ב-API

  • משנים את השם של onBack ל-onBackCompleted ומוסיפים את onBackCancelled ל-NavigationBackHandler כדי לתמוך בטיפול במחוות חזרה שבוטלו. (I92741)
  • מוסיפים את NavigationBackHandler כדי לפשט את הטיפול במחוות חזרה ובחיזוי החזרה כשמשתמשים ב-SceneState. כך המפתחים יכולים ליצור בקלות רבה יותר רכיבי ממשק משתמש מותאמים אישית שתומכים בניווט לאחור רגיל ובמחוות ניווט אחורה חזויות, בלי לחשב ידנית את הדלתאות של מקבץ הפעילויות הקודמות (back stack). (I6a055)
  • מוסיפים rememberNavigationEventState כדי לפשט את החיבור SceneState באמצעות טיפול חיזוי בחזרה. (Iae49c)

תכונות חדשות

  • הוספנו ResultEventBus API כדי לאפשר העברת תוצאות בין NavEntries באמצעות LocalResultEventBus שסופק על ידי ResultEventBusNavEntryDecorator החדש. אפשר להעריך את התוצאות שמועברות כמצב עם ResultEventBus#conflateAsState או כרצף של תוצאות עם ResultEffect.

גרסה ‎1.2.0-alpha01

‫8 באפריל 2026

‫androidx.navigation3:navigation3-*:1.2.0-alpha01 מופץ. גרסה ‎1.2.0-alpha01 מכילה את השמירות האלה.

תיקוני באגים

  • גישה אל LocalNavAnimatedContentScope מ-OverlayScene לא תגרום יותר ל-IllegalStateException כי OverlayScenes מקבלים עכשיו LocalAnimatedContentScope ללא פעולה. (I2f00c, ‏ b/486067688)

גרסה 1.1.7

‫26 באוגוסט 2026

‫androidx.navigation3:navigation3-*:1.1.7 מופץ. גרסה 1.1.7 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה שגרמה לכך שתנועות ניווט חזויות אחורה שהופעלו במהלך מעבר קדימה לא הונפשו בתגובה להתקדמות ההחלקה. האנימציה של החזרה החזויה תפעל ותושלם כמו שצריך. (Icdcb0, ‏ b/456218398)

גרסה 1.1.6

‫12 באוגוסט 2026

‫androidx.navigation3:navigation3-*:1.1.6 מופץ. גרסה 1.1.6 מכילה את השמירות האלה.

תיקוני באגים

  • תג NavEntry.contentKey מוגדר עכשיו כברירת מחדל לשילוב של key.toString() ו-key::class.toString(). כך אפשר לוודא שאובייקטים של נתונים עם אותו שם אבל עם הטמעה של ממשקים שונים לא יקבלו יותר את אותו contentKey. עם זאת, הפונקציה key::class בפלטפורמת JS מחזירה רק שם פשוט של מחלקה במקום שם מוגדר במלואו, ולכן בפלטפורמת JS עדיין צריך להטמיע פונקציה מותאמת אישית contentKey לאובייקטים של נתונים עם שמות כפולים. (I1fbbb, b/512534342)
  • תוקן IllegalArgumentException שמוחזר על ידי SaveableStateHolder לשימוש חוזר במפתח כשכמה מעברים של חלונות קופצים מתבצעים בו-זמנית בגלל הסרה מהירה של חלונות קופצים ממקבץ פעילויות קודמות (back stack). (I4d728, ‏ b/516312097)

גרסה 1.1.5

‫29 ביולי 2026

‫androidx.navigation3:navigation3-*:1.1.5 מופץ. גרסה 1.1.5 מכילה את השמירות האלה.

תיקוני באגים

  • שפת ה-DSL‏ entryProvider מעכשיו נותנת עדיפות ל-NavEntry שנבנה עם מופע מפתח, למשל entry(key = userKey) { ... } על פני NavEntry שנבנה עם מחלקת מפתח כמו entry<UserKey>{ ... }.(Ib5ec9, ‏ b/533331924)

גרסה 1.1.4

‫1 ביולי 2026

‫androidx.navigation3:navigation3-*:1.1.4 מופץ. גרסה 1.1.4 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה שגרמה לכך שרשומה מוקפצת נעלמת מיד כשמקפיצים לרשומה שיש לה מטא-נתונים מוטמעים שמכילים ערכי lambda. (Idb872, ‏ b/520494430)

גרסה 1.1.3

‫17 ביוני 2026

‫androidx.navigation3:navigation3-*:1.1.3 מופץ. גרסה 1.1.3 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה בהנפשה של שכבות-על שבה שכבות-על מוטמעות כמו ModalBottomSheet מונפשות מחדש באופן בלתי צפוי כששכבות-העל שמעליהן מוקפצות. (Ia2b9e, b/502624496)

  • הועלתה התלות NavigationEvent לגרסה 1.1.2, שבה הוסר ה-no-op NavigationEventHandler כשנמצאים במצב בדיקה, כדי להפעיל את התכונה 'חזרה עם אנימציה' בתצוגות המקדימות של Android Studio.

גרסה 1.1.2

‫19 במאי 2026

‫androidx.navigation3:navigation3-*:1.1.2 מופץ. גרסה 1.1.2 מכילה את השמירות האלה.

תיקוני באגים

  • הגרסה של התלות NavigationEvent הועלתה ל-1.1.1, וכך הוסר ה-no-op NavigationEventHandler כשנמצאים במצב בדיקה, כדי להפעיל את התכונה 'חזרה עם אנימציה' בגרסאות טרום-השקה של Android Studio.

גרסה 1.1.1

‫22 באפריל 2026

‫androidx.navigation3:navigation3-*:1.1.1 מופץ. גרסה 1.1.1 מכילה את השמירות האלה.

תיקוני באגים

  • גישה אל LocalNavAnimatedContentScope מ-OverlayScene לא תגרום יותר ל-IllegalStateException כי OverlayScenes מקבלים עכשיו LocalAnimatedContentScope ללא פעולה. (I2f00c, ‏ b/486067688)

גרסה 1.1.0

‫8 באפריל 2026

‫androidx.navigation3:navigation3-*:1.1.0 מופץ. גרסה 1.1.0 מכילה את השמירות האלה.

גרסה 1.1.0 יציבה עכשיו

שינויים חשובים מאז גרסה 1.0.0

אלמנטים משותפים בין סצנות - מעכשיו, Navigation3 תומך בטיפול בסצנות כאובייקט של אלמנט משותף. המשמעות היא שכשהסצנות משתנות, אפשר לוודא שהמעבר ביניהן יהיה חלק. כדי להפעיל את האפשרות הזו, מעבירים SharedTransitionScope אל NavDisplay או אל rememberSceneState.

‫SceneDecoratorStrategy - הוספנו את SceneDecoratorStrategy כדי לתמוך בתרחישי שימוש כמו עיצוב סצנות עם רכיבי ממשק משתמש נפוצים או שיתוף מצב בין סצנות.

‫NavMetadata DSL – בספריית Navigation3 יש עכשיו DSL חדש של מטא-נתונים שמאפשר לבדוק את סוגי הנתונים. ה-DSL משתמש בממשק MetadataKey חדש שמאפשר להגדיר את סוגי המפתח והערך שרוצים לספק למפת המטא-נתונים. בנוסף, נוספו NavMetadataKeys חדשים למעברים של NavDisplay, כך שאפשר להשתמש בהם עם ה-DSL החדש של המטא-נתונים כדי להוסיף מעברים ל-NavDisplay.

OverlayScene Animations - בממשק OverlayScene יש עכשיו קריאה חוזרת (callback) חדשה להשהיה onRemoved. הקריאה החוזרת הזו מופעלת אחרי שמפתח שמשויך לסצנה מוסר מה-backstack, אבל לפני שהוא יוצא מהקומפוזיציה. כך אנימציות היציאה שנקראות בתוך onRemovedיושלמו לפני שהסצנה של שכבת העל תוסר מהקומפוזיציה.

שינויים אחרים - הפונקציות NavDisplay ו-rememberSceneState מקבלות עכשיו פרמטר List<SceneStrategy> במקום פרמטר יחיד SceneStrategy שהיה קודם, שהיה משורשר באמצעות האופרטור then. – עכשיו אפשר להוסיף מטא-נתונים באופן דינמי תוך התחשבות במפתח הרשומה באמצעות EntryProvider DSL.

גרסה ‎1.1.0-rc01

‫25 במרץ 2026

‫androidx.navigation3:navigation3-*:1.1.0-rc01 מופץ. גרסה ‎1.1.0-rc01 מכילה את השמירות האלה.

תיקוני באגים

  • NavDisplay מוודא עכשיו שהערכים שמוצגים מתחת לשכבות-על מוגבלים ל-Lifecycle STARTED. כך תוכלו לוודא ש-APIs כמו dropUnlessResumed ימשיכו לפעול כשמשתמשים בתיבות דו-שיח. (If209f, ‏ b/483966071)
  • תוקנה בעיה ב-NavDisplay שבה מעבר הלוך ושוב בין אותם מסכים והפרעה לאנימציות בין שני המסכים עלולים לגרום לסדר ה-Z של המסכים להיות שגוי. (I4d491, b/459419800)

גרסה ‎1.1.0-beta01

‫11 במרץ 2026

‫androidx.navigation3:navigation3-*:1.1.0-beta01 מופץ. גרסה ‎1.1.0-beta01 מכילה את השמירות האלה.

גרסה ‎1.1.0-alpha05

‫25 בפברואר 2026

‫androidx.navigation3:navigation3-*:1.1.0-alpha05 מופץ. גרסה ‎1.1.0-alpha05 מכילה את השמירות האלה.

שינויים ב-API

  • הפרמטרים NavDisplay ו-rememberSceneState מקבלים עכשיו List<SceneStrategy> במקום הפרמטר היחיד SceneStrategy הקודם, ששורשר באמצעות התו then. השינוי הזה תואם יותר ל-List<SceneDecoratorStrategy<T>> ששני ממשקי ה-API האלה כבר מקבלים. הוצאנו משימוש את ממשקי ה-API הקודמים. (I78b2c, ‏ b/482108465)
  • נוסף אופרטור metadata #contains כדי לבדוק אם מפת המטא-נתונים מכילה את הערך NavMetadataKey. (Ic30db, ‏ b/485311895)
  • נוספה האפשרות NavMetadataKey DialogKey ל-DialogSceneStrategy לשימוש עם Metadata DSL. ‫(Ic7a26, ‏ b/483388817)

גרסה ‎1.1.0-alpha04

‫11 בפברואר 2026

‫androidx.navigation3:navigation3-*:1.1.0-alpha04 מופץ. גרסה ‎1.1.0-alpha04 מכילה את השמירות האלה.

תכונות חדשות

  • ‫Navigation3 מספק עכשיו DSL חדש של מטא-נתונים עם בטיחות סוגים. ה-DSL משתמש בממשק MetadataKey חדש שמאפשר להגדיר את סוגי המפתח והערך שרוצים לספק למפת המטא-נתונים. בנוסף, נוספו NavMetadataKey חדשים לNavDisplay מעברים, כך שאפשר להשתמש בהם עם metadata DSL החדש כדי להוסיף מעברים לNavDisplay. (Ic10ef, ‏ Ic049c,‏b/476213928)

שינויים ב-API

  • בממשק של OverlayScene יש עכשיו onRemoved suspending callback חדש. הקריאה החוזרת הזו מופעלת אחרי שמפתח שמשויך לסצנה מוסר מה-backstack, אבל לפני שהוא יוצא מהקומפוזיציה. כך אנימציות היציאה שנקראות בתוך onRemoved יושלמו לפני שהסצנה של שכבת העל תוסר מהקומפוזיציה. (I29a72, ‏ b/440558061)
  • הפונקציה SceneStrategy פוצלה לפונקציה חדשה SceneDecoratorStrategy. הממשק החדש הזה הוא הממשק שבו צריך להשתמש כדי לקשט סצנות. יש ממשקי API חדשים ל-NavDisplay ול-rememberSceneState שמאפשרים להוסיף SceneDecoratorStrategies. ‫(If9385, ‏ b/477669607, ‏ b/477670333)

תיקוני באגים

  • תוקנה שגיאה שבה העברה של SharedTransitionLayout אל NavDisplay או אל rememberSceneState ושימוש ב-OverlayScene כלשהו גרמו לקריסה, כי השימוש ב-SharedTransitionLayout פועל רק עם NavEntries שמוצגים כחלק מ-AnimatedContent, ו-OverlayScene מוצגים בחלונות נפרדים משלהם. (I1bb76, ‏ b/478664101)

עדכון תלות

  • מגרסה Navigation3 1.0.1: Navigation3 תלויה עכשיו בגרסה NavigationEvent 1.0.2. השינוי הזה פותר בעיה IllegalStateException שקשורה לשימוש ב-NavDisplay במהלך AndroidStudio Previews. (Id7212, ‏ b/477149762)

גרסה ‎1.1.0-alpha03

‫28 בינואר 2026

‫androidx.navigation3:navigation3-*:1.1.0-alpha03 מופץ. גרסה ‎1.1.0-alpha03 מכילה את השמירות האלה.

תכונות חדשות

  • עכשיו אפשר להוסיף מטא-נתונים באופן דינמי תוך התייחסות למפתח כניסה באמצעות EntryProvider DSL. (I942fb, ‏ b/474416976)

גרסה ‎1.1.0-alpha02

‫14 בינואר 2026

‫androidx.navigation3:navigation3-*:1.1.0-alpha02 מופץ. גרסה ‎1.1.0-alpha02 מכילה את השמירות האלה.

תכונות חדשות

  • ‫SceneStrategy תומך עכשיו בהטמעה של סצנות באמצעות הפונקציה החדשה calculatedScene(Scene). כלומר, אפשר להתאים אישית את SceneStrategy כדי לספק פונקציונליות נוספת לסצנות אחרות. (I5df7c,b/440333896)

גרסה ‎1.1.0-alpha01

‫3 בדצמבר 2025

‫androidx.navigation3:navigation3-*:1.1.0-alpha01 מופץ. גרסה ‎1.1.0-alpha01 מכילה את השמירות האלה.

שינויים ב-API

  • ב-Navigation3 יש עכשיו תמיכה בהתייחסות לסצנות כאובייקט של רכיב משותף. המשמעות היא שכשהסצנות משתנות, אפשר לוודא שהמעבר ביניהן יהיה חלק. כדי להפעיל את האפשרות הזו, מעבירים SharedTransitionScope ל-NavDisplay או ל-rememberSceneState. (I15868)

גירסה 1.0

גרסה 1.0.1

‫11 בפברואר 2026

‫androidx.navigation3:navigation3-*:1.0.1 מופץ. גרסה 1.0.1 מכילה את השמירות האלה.

עדכון תלות

  • ‫Navigation3 תלוי עכשיו ב-NavigationEvent 1.0.2. השינוי הזה פותר IllegalStateException בעיה שקשורה לשימוש ב-NavDisplay במהלך AndroidStudio Previews. (Id7212, ‏ b/477149762)

גרסה 1.0.0

‫19 בנובמבר 2025

‫androidx.navigation3:navigation3-*:1.0.0 מופץ. גרסה 1.0.0 מכילה את השמירות האלה.

חדש: Navigation3!

גרסה ‎1.0.0-rc01

‫5 בנובמבר 2025

‫androidx.navigation3:navigation3-*:1.0.0-rc01 מופץ. גרסה ‎1.0.0-rc01 מכילה את השמירות האלה.

תיקוני באגים

  • ‫NavDisplay מגדיר עכשיו LocalLifecycleOwner ברמה של Scene שמאפשרת לכותבי סצנות לקבוע אם כל המעברים הסתיימו על ידי בדיקה שהערך של Lifecycle.State הוא RESUMED. ההתנהגות של LocalLifecycleOwner ברמה של NavEntry לא משתנה: היא גם נשארת מוגבלת ל-STARTED אם מתבצע מעבר, והיא מוגבלת בנוסף ל-CREATED אם NavEntry הוצא מהמחסנית האחורית והוא בתהליך של אנימציה. ‫(I03113, b/454045829)

גרסה ‎1.0.0-beta01

‫22 באוקטובר 2025

‫androidx.navigation3:navigation3-*:1.0.0-beta01 מופץ. גרסה ‎1.0.0-beta01 מכילה את השמירות האלה.

שינויים ב-API

  • SceneStrategyScope יש עכשיו רק בנאי ציבורי ללא ארגומנטים, שמתאים לבדיקה של SceneStrategy ושל Scene המוחזר בבידוד. לתרחישי שימוש מורכבים יותר, מומלץ להשתמש ב-rememberSceneState(). (I8440c, ‏ b/451679047)

תיקוני באגים

  • תוקנה לולאה אינסופית שנוצרה כשמשלבים בין SceneStrategy לבין then. (Iba3f0, b/450323470)
  • תוקן מצב של הבהוב המסך כשמחליפים את backStack שמועבר אל NavDisplay ומשתמשים באנימציות. (Ief7b5, ‏ b/450967248)

גרסה ‎1.0.0-alpha11

‫8 באוקטובר 2025

‫androidx.navigation3:navigation3-*:1.0.0-alpha11 מופץ. גרסה ‎1.0.0-alpha11 מכילה את השמירות האלה.

שינויים ב-API

  • השיטה calculateScene ב-SceneStrategy כבר לא @Composable. במקום זאת, כדאי להעביר את העבודה הזו לבנייה של שיטת SceneStrategy (כלומר, בשיטת rememberMySceneStrategy()) שמאפשרת לכם להגדיר באופן מלא את משך החיים של ערכי rememberSaveable או של הצהרות מפתח remember על סמך הערכים הנכונים. (If1733, ‏ b/448709506)
  • הפרמטר onBack של SceneStrategy.calculateScene הועבר להיקף החדש של מקבל ההודעה SceneStrategyScope כדי להבהיר שמדובר בפרמטר אופציונלי, וכדי לספק נקודת הרחבה לתכונות עתידיות של Navigation3. (I3aea3, ‏ b/448460407)
  • פונקציית ה-lambda‏ onBack שמועברת אל NavDisplay ואל SceneStrategy לא מספקת יותר פרמטר count: Int כדי לציין מתי צריך להסיר כמה רשומות. במקום זאת, פונקציית ה-() -> Unit lambda תיקרא עכשיו כמה פעמים ברצף במקרה הנדיר שבו בקשות הסצנה שלכם מציגות כמה רשומות. (Idedb5, ‏ b/446989346)
  • מסירים את המחלקה NavEntryWrapper ומחליפים את הפונקציונליות שלה במחלקה סופית NavEntry עם בנאי משני חדש שמקבל NavEntry עם תוכן חדש. כך תהיה תמיכה בהוספת תוכן חדש לרשומה. ‫(I7da2a, ‏ b/444447130)
  • הפונקציה navEntryDecorator שיוצרת ומחזירה NavEntryDecorator הוסרה והוחלפה במחלקה NavEntryDecorator, שעכשיו היא ציבורית ופתוחה ליצירת מחלקות משנה. (If81f8, ‏ b/444447434, ‏ b/447381176)
  • השם של SavedStateNavEntryDecorator השתנה לשם SaveableStateHolderNavEntryDecorator כי הוא מוסיף SaveableStateHolder לרשומות. בנוסף, בוצע רפקטורינג של ה-decorator מפונקציה למחלקה, כי מבחינה פונקציונלית הוא מהווה factory עבור NavEntryDecorator. ‫(Ie6013, ‏ b/447381176)
  • כבר לא צריך להשתמש ב-LocalEntriesToRenderInCurrentScene composition local כדי להציג תצוגות מותאמות אישית באמצעות SceneState כחלופה לשימוש ב-NavDisplay. התכונה הזו היא עכשיו פנימית. (Ic40ef, ‏ b/414668196)
  • הסרנו את SceneSetupNavEntryDecorator ואת rememberSceneSetupNavEntryDecorator() מ-API שגלוי לכולם. הפונקציונליות הזו כלולה עכשיו כברירת מחדל, ולא צריך לכלול אותה באופן ידני. ‫(Ieae42, ‏ b/444479133)
  • ‫NavEntry, DialogScene, SinglePaneScene וגם SceneState מיישמים עכשיו את הפונקציה equals. (I96121)
  • בממשק של הסצנה יש שדה חדש של מטא-נתונים לצירוף מטא-נתונים ספציפיים לסצנה עבור NavDisplay. כך אפשר להגדיר שסצנה מסוימת תשנה את המטא-נתונים של NavDisplay, למשל באמצעות מעברים. (I1fd96, ‏ b/443955625)
  • כדי לפשט את החתימה rememberNavBackStack, צריך להסיר את פרמטר הסוג הכללי המיותר. הפונקציה מקבלת עכשיו את הערך vararg elements: NavKey. (I03e45)
  • אנימציות ברירת המחדל של NavDisplay הן עכשיו חלק מה-API המשותף, כך שאפשר לקרוא להן מכל הפלטפורמות. (I71af9, ‏ b/447147159)
  • משנים את השם של EntryProviderBuilder ל-EntryProviderScope כדי לשקף בצורה מדויקת שהכיתה היא Kotlin DSL שמספקת היקף לבניית NavEntries. (Ia7465)

תיקוני באגים

  • rememberNavBackStack() אוכף עכשיו סריאליזציה פולימורפית עבור NavKey ודורש SavedStateConfiguration בהתאמה אישית שמוגדרת כדי להבטיח שחזור נכון של המצב. עדכנו את KDoc כדי לשקף את הדרישה שכל סוגי המשנה של NavKey צריכים להיות רשומים ב-SerializersModule שסופק. (I6de37,‏I782f2, ‏ b/446664383)

גרסה ‎1.0.0-alpha10

‫24 בספטמבר 2025

‫androidx.navigation3:navigation3-*:1.0.0-alpha10 מופץ. גרסה ‎1.0.0-alpha10 מכילה את השמירות האלה.

שינויים ב-API

  • הוספת עומס יתר חדש של NavDisplay שמקבל רשימה של NavEntry<T> שעברה קישוט על ידי rememberDecoratedNavEntries. ‫(I4025b, ‏ b/441940314)
  • הועבר DialogScene לחבילה חדשה. (Ia5840)
  • הסרת ה-API הציבורי DecorateNavEntry. במקום זאת, משתמשים ב-rememberDecoratedNavEntries כדי להוסיף רשימה של רכיבי Decorator ל-NavEntry. (Id8c09)
  • בממשק המשתמש של Navigation3 יש עכשיו מאפייני ברירת מחדל חדשים של transitionSpec. (Ibcabd)
  • נוסף אובייקט SceneState חדש שיעזור לכם לנהל סצנות. בנוסף, יש עומס יתר חדש של NavDisplay שמקבל את SceneState ואת NavigationEventState. (Idfb46, b/444479133)
  • NavDisplay מאפשרת עכשיו להתאים אישית את המעברים על סמך מה שScene אתם עוברים אליו וממנו, על ידי עיון בTransition של currentState וtargetState. (I906cc, b/443872322)
  • NavigationEventInfo הוא עכשיו abstract class במקום interface. מעדכנים את כל ההטמעות המותאמות אישית כך שיורשות מהמחלקה (לדוגמה, data class MyInfo : NavigationEventInfo()). (I1e59c, b/444734264)
  • ממשקי ה-API של navigationevent-compose handler עודכנו. הפונקציות NavigationEventHandler ו-NavigationBackHandler (והווריאציות שלהן) תומכות עכשיו בעומס יתר חדש שמקבל NavigationEventStates שהועברו למעלה. העומסים הפשוטים (שמקבלים currentInfo) נשמרים ועכשיו משתמשים במודל המצב החדש הזה באופן פנימי. (Ic3251, b/444734264)
  • כל ממשקי ה-API של Scene הועברו מ-navigation3-ui אל navigation3-runtime. כלומר, הם זמינים עכשיו בכל הפלטפורמות שנתמכות על ידי navigation3-runtime. (I431d0, b/444449993)
  • נוספה גרסת rememberDecoratedNavEntries חדשה שמשתמשת ברשימה של NavEntry כדי להוסיף קישוט. יכול להיות שרשומות הקלט כבר מעוטרות במעטרים אחרים. ‫(I5a034, ‏ b/444230270)
  • הסרה של פרמטרים מסוג wildcard של navigation3 ‏ (I02540)
  • שיפרנו את הטיפול בגנריות ב-entryProvider DSL. אם בעבר ייבאתם androidx.navigation3.runtime.entry, אין יותר צורך בכך. (I299fc)
  • הגבלת העומס העודף של NavBackStackSerializer שמבוסס על השתקפות ל-Android. ההגדרה הזו מונעת כשלים מרומזים בסריאליזציה בזמן ריצה בפלטפורמות שאינן Android, על ידי אכיפת השימוש בעומס היתר המפורש SavedStateConfiguration בקוד מרובה פלטפורמות. (I73313, ‏ b/420443609)
  • יצירת @IntDef של swipeEdge (Icee54, ‏ b/443950342)NavigationEvent
  • הגבלת סריאליזציה של NavBackStack ל-Android. כך נמנעים כשלים בזמן ריצה בפלטפורמות שאינן Android. כדי לשמור את המצב בכמה פלטפורמות, משתמשים ב-rememberNavBackStack overload עם SavedStateConfiguration מפורש. ‫(I1e418, ‏ b/420443609)

תיקוני באגים

  • תוקנה קריסה במהלך חיזוי החזרה כש-NavDisplay מוטבע מכיל רשומה אחת של צאצא. (I2cdc0, ‏ b/441933162)

גרסה ‎1.0.0-alpha09

‫10 בספטמבר 2025

‫androidx.navigation3:navigation3-*:1.0.0-alpha09 מופץ. גרסה ‎1.0.0-alpha09 מכילה את השמירות האלה.

שינויים ב-API

  • הפונקציה DecoratedNavEntryProvider הוחלפה בפונקציה rememberDecoratedNavEntries שיוצרת ומחזירה NavEntries עם קישוטים של רשימת הקישוטים שסופקו (I0fe1c, ‏ b/441328236)
  • הפונקציה NavBackStack היא עכשיו גנרית לגבי הסוג NavKey. כך אפליקציות וספריות יכולות להגדיר סוגי מקשים מותאמים אישית עבור ערימות החזרה שלהן, במקום להיות מוגבלות ל-NavKey. (I4d190,‏Iad2f4, ‏ b/420443609)
  • ‫NavBackStack הוא עכשיו @kotlinx.serialization.Serializable, ולכן אפשר לשמור ולשחזר את מצב הניווט אחרי סיום התהליך ושינויים בהגדרות בלי להשתמש בקוד boilerplate נוסף. ‫(I2c3cf, ‏ b/420443609)
  • העברנו את RememberNavBackStack אל commonMain כדי לוודא שהוא מסופק בכל פלטפורמות היעד. (Id69e7, ‏ b/420443609)

תיקוני באגים

  • ‫NavDisplay מעביר עכשיו כל NavEntry בנפרד אל Lifecycle.State הנכון. ‫(I30aac, ‏ b/440145700)
  • תוקנה בעיה שבה התג NavDisplay התעלם מכל תג NavigationEventDispatcherOwner שמוגדר בתוך תג אחר באמצעות LocalNavigationEventDispatcherOwner של ספריית NavigationEvent. (I6224a)

שינויים בתלות

גרסה ‎1.0.0-alpha08

‫27 באוגוסט 2025

‫androidx.navigation3:navigation3-*:1.0.0-alpha08 מופץ. גרסה ‎1.0.0-alpha08 מכילה את השמירות האלה.

תכונות חדשות

  • נוספו יעדים חדשים של Kotlin MultiPlatform‏ (KMP) לNavigation3 Runtime artifacts. Navigation3 Runtime תומך עכשיו בפלטפורמות הבאות: JVM (Android ומחשב), Native (Linux,‏ iOS,‏ watchOS,‏ macOS,‏ MinGW) ו-Web (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 גרם לכך שמחזורי החיים התבססו על סצנות במקום על רשומות נפרדות. כתוצאה מכך, מחזור החיים לא פעל במקרים שבהם key שסופק ל-NavEntry לא היה String, או ש-NavEntry לא ביטל את contentKey והגדיר אותו כשווה ל-key (שימו לב שפעולה כזו מחייבת שהמפתח יישמר ב-Bundle). הבאג הזה תוקן בגרסה הבאה. (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. כלומר, אם יש כמה מקבצי פעילויות קודמות (back stack) של היסטוריית ניווט, צריך להחליף את ה-decorators לאורך מקבצי פעילויות קודמות (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, קוראים ל-API החדש NavEntry.Content() שלא דורש יותר פרמטר 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 מספק את שכבת ממשק המשתמש באמצעות 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.