navigation3
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 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
אין הערות לגבי הגרסה של הארטיפקט הזה.
Navigation3 גרסה 1.2
גרסה 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בטוח-סוגים שנבנה באמצעותrequestExtrasDSL ו-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>לסוג חדש של מחלקה בטוחה מסוג mapRequestExtrasשמאחסנת זוגות של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. עם זאת, הפלטפורמה של JSkey::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'sT upper bound השתנה מ-Any?ל-Any. (I6bf1a)שדה ה-constructor
DeepLinkRequesturiמוגדר עכשיו כ-null כברירת מחדל. השם שלuriStringבבונה המשני השתנה ל-uri. (Ia0f14, b/522194187)
תיקוני באגים
-
ResultEffectמשתמש עכשיו ב-rememberUpdatedStateכדי לתעד אתonResultlambda העדכני. (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) - נוסף
requestExtrasdsl חדש כדרך בטוחה מבחינת סוגים ליצירת מפה של תוספים. שפת ה-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היא עכשיו ממשק פונקציונלי. שדה ה-constructorfilterמוסר, ובמקומו צריך להעביר אותו ישירות בתת-הסיווג. (I9eb7d, b/522194187)
תיקוני באגים
- תוקנה בעיה שגרמה לכך שרשומה שנפתחה בחלון קופץ נעלמה מיד כשפותחים בחלון קופץ רשומה שמכילה מטא-נתונים מוטמעים עם ערכי lambda. (Idb872, b/520494430)
- תוקן
UriDeepLinkMatcherכך שיחזיר ערך nullUriMatchResultבמקום להפעיל את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תחזיר ערך nullUriMatchResultבמקום להפעיל חריגה. (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)
תכונות חדשות
- הוספנו
ResultEventBusAPI כדי לאפשר העברת תוצאות בין 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 של Navigation3
גרסה 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-opNavigationEventHandlerכשנמצאים במצב בדיקה, כדי להפעיל את התכונה 'חזרה עם אנימציה' בתצוגות המקדימות של Android Studio.
גרסה 1.1.2
19 במאי 2026
androidx.navigation3:navigation3-*:1.1.2 מופץ. גרסה 1.1.2 מכילה את השמירות האלה.
תיקוני באגים
- הגרסה של התלות
NavigationEventהועלתה ל-1.1.1, וכך הוסר ה-no-opNavigationEventHandlerכשנמצאים במצב בדיקה, כדי להפעיל את התכונה 'חזרה עם אנימציה' בגרסאות טרום-השקה של 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מוודא עכשיו שהערכים שמוצגים מתחת לשכבות-על מוגבלים ל-LifecycleSTARTED. כך תוכלו לוודא ש-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) - נוספה האפשרות
NavMetadataKeyDialogKeyל-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מעברים, כך שאפשר להשתמש בהם עםmetadataDSL החדש כדי להוסיף מעברים לNavDisplay. (Ic10ef, Ic049c,b/476213928)
שינויים ב-API
- בממשק של
OverlaySceneיש עכשיוonRemovedsuspending 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)
עדכון תלות
- מגרסה
Navigation31.0.1:Navigation3תלויה עכשיו בגרסהNavigationEvent1.0.2. השינוי הזה פותר בעיהIllegalStateExceptionשקשורה לשימוש ב-NavDisplayבמהלךAndroidStudioPreviews. (Id7212, b/477149762)
גרסה 1.1.0-alpha03
28 בינואר 2026
androidx.navigation3:navigation3-*:1.1.0-alpha03 מופץ. גרסה 1.1.0-alpha03 מכילה את השמירות האלה.
תכונות חדשות
- עכשיו אפשר להוסיף מטא-נתונים באופן דינמי תוך התייחסות למפתח כניסה באמצעות
EntryProviderDSL. (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תלוי עכשיו ב-NavigationEvent1.0.2. השינוי הזה פותרIllegalStateExceptionבעיה שקשורה לשימוש ב-NavDisplayבמהלךAndroidStudioPreviews. (Id7212, b/477149762)
גרסה 1.0.0
19 בנובמבר 2025
androidx.navigation3:navigation3-*:1.0.0 מופץ. גרסה 1.0.0 מכילה את השמירות האלה.
חדש: Navigation3!
- ספריית Navigation3 יציבה עכשיו. Navigation3 היא גישת הניווט הראשונה של AndroidX Compose.
- מידע נוסף מפורט בפוסט שלנו בבלוג. אפשר גם לעיין במקורות המידע ולנסות את המתכונים.
גרסה 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כדי לציין מתי צריך להסיר כמה רשומות. במקום זאת, פונקציית ה-() -> Unitlambda תיקרא עכשיו כמה פעמים ברצף במקרה הנדיר שבו בקשות הסצנה שלכם מציגות כמה רשומות. (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) - כבר לא צריך להשתמש ב-
LocalEntriesToRenderInCurrentScenecomposition 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-composehandler עודכנו. הפונקציות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)
- שיפרנו את הטיפול בגנריות ב-
entryProviderDSL. אם בעבר ייבאתםandroidx.navigation3.runtime.entry, אין יותר צורך בכך. (I299fc) - הגבלת העומס העודף של
NavBackStackSerializerשמבוסס על השתקפות ל-Android. ההגדרה הזו מונעת כשלים מרומזים בסריאליזציה בזמן ריצה בפלטפורמות שאינן Android, על ידי אכיפת השימוש בעומס היתר המפורשSavedStateConfigurationבקוד מרובה פלטפורמות. (I73313, b/420443609) - יצירת
@IntDefשלswipeEdge(Icee54, b/443950342)NavigationEvent - הגבלת סריאליזציה של
NavBackStackל-Android. כך נמנעים כשלים בזמן ריצה בפלטפורמות שאינן Android. כדי לשמור את המצב בכמה פלטפורמות, משתמשים ב-rememberNavBackStackoverload עם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)
שינויים בתלות
- Navigation3 תלוי עכשיו ב-NavigationEvent Alpha08.
גרסה 1.0.0-alpha08
27 באוגוסט 2025
androidx.navigation3:navigation3-*:1.0.0-alpha08 מופץ. גרסה 1.0.0-alpha08 מכילה את השמירות האלה.
תכונות חדשות
- נוספו יעדים חדשים של Kotlin MultiPlatform (KMP) ל
Navigation3 Runtimeartifacts.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
- הערך שמוגדר כברירת מחדל ל-minSdk ב-AndroidX הועבר מ-API 21 ל-API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
שינויים ב-API
-
SavedStateNavEntryDecoratorמשתמש עכשיו ב-SaveableStateRegistryשמוטמע ב-SaveableStateProviderכדי לשמור ולשחזר מצבים. (If8d9a) - הפרמטר
predictivePopTransitionSpecמועבר עכשיו כפרמטר, וכך אפשר להתאים אישית את המעבר בהתאם לקצה שממנו המשתמש התחיל את תנועת החיזוי של החזרה. (I753a8)
תיקוני באגים
- תוקנה הבעיה שגרמה לחישוב אינסופי של סצנות מותאמות אישית, כי המערכת לא זכרה את הסצנה האחרונה. (I7ba84, b/418153031)
עדכון של תלות
- Navigation3 מסתמך עכשיו על אירוע ניווט
1.0.0-alpha06.
גרסה 1.0.0-alpha06
30 ביולי 2025
androidx.navigation3:navigation3-*:1.0.0-alpha06 מופץ. גרסה 1.0.0-alpha06 מכילה את השמירות האלה.
עדכון תלות
- Navigation3 מסתמך עכשיו על Navigation Event
1.0.0-alpha05.
גרסה 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.