navigation3

  
‫Navigation 3 هي مكتبة تنقّل جديدة مصمَّمة للعمل مع Compose.
آخر الأخبار الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار الأوّلي
‫11 فبراير 2026 1.0.1 - - 1.1.0-alpha04

تحديد الاعتماديات

لإضافة اعتمادية على navigation3، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.

أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:

Groovy

dependencies {
    implementation "androidx.navigation3:navigation3-runtime:1.1.0-alpha04"
    implementation "androidx.navigation3:navigation3-ui:1.1.0-alpha04"
}

Kotlin

dependencies {
    implementation("androidx.navigation3:navigation3-runtime:1.1.0-alpha04")
    implementation("androidx.navigation3:navigation3-ui:1.1.0-alpha04")
}

لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات الإصدار.

الملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء مشكلة جديدة

يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.

لا تتوفّر ملاحظات إصدار لهذا العنصر.

الإصدار 1.1

الإصدار ‎1.1.0-alpha04

‫11 فبراير 2026

تم طرح androidx.navigation3:navigation3-*:1.1.0-alpha04. يتضمّن الإصدار 1.1.0-alpha04 هذه التعديلات.

الميزات الجديدة

  • توفّر مكتبة Navigation3 الآن لغة نطاق خاص جديدة للبيانات الوصفية آمنة الأنواع. تستخدم لغة DSL واجهة MetadataKey جديدة تتيح تحديد أنواع المفاتيح والقيم التي يريدون تقديمها إلى خريطة البيانات الوصفية. أضفنا أيضًا NavMetadataKey جديدة لعمليات الانتقال NavDisplay حتى يمكن استخدامها مع لغة metadata DSL الجديدة لإضافة عمليات انتقال إلى NavDisplay. (Ic10ef وIc049c وb/476213928)

تغييرات واجهة برمجة التطبيقات

  • تتضمّن واجهة OverlayScene الآن دالة معاودة الاتصال الجديدة onRemoved الخاصة بتعليق التنفيذ. يتم استدعاء دالة الرجوع هذه بعد إزالة مفتاح مرتبط بالمشهد من سجلّ الرجوع، ولكن قبل أن يغادر التركيب. يسمح ذلك بإكمال الصور المتحركة للخروج التي يتم استدعاؤها ضِمن onRemoved قبل إزالة مشهد التراكب من التركيب. (I29a72، b/440558061)

إصلاح الأخطاء

  • تم إصلاح خطأ كان يحدث عند تمرير SharedTransitionLayout إلى NavDisplay أو rememberSceneState واستخدام أي OverlayScene، ما كان يؤدي إلى حدوث عطل لأنّ استخدام SharedTransitionLayout لا يعمل إلا مع NavEntries التي يتم عرضها كجزء من AnimatedContent، ويتم عرض OverlayScene في نوافذ منفصلة. (I1bb76، b/478664101)

تحديث الاعتماديات

  • من الإصدار 1.0.1 من Navigation3: يعتمد Navigation3 الآن على الإصدار 1.0.2 من NavigationEvent. يحلّ هذا التحديث مشكلة IllegalStateException ناتجة عن استخدام NavDisplay أثناء معاينات AndroidStudio. (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 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • تتيح Navigation3 الآن التعامل مع المشاهد كعناصر مشتركة. هذا يعني أنّه عند تغيير المشاهد، يمكن ضمان الانتقال السلس بينها. يمكنك تفعيل ذلك من خلال تمرير SharedTransitionScope إلى NavDisplay أو إلى rememberSceneState. (I15868)

الإصدار 1.0

الإصدار 1.0.1

‫11 فبراير 2026

تم طرح androidx.navigation3:navigation3-*:1.0.1. يتضمّن الإصدار 1.0.1 هذه التعديلات.

تحديث الاعتماديات

  • يعتمد Navigation3 الآن على الإصدار 1.0.2 من NavigationEvent. يحلّ هذا التحديث مشكلة IllegalStateException ناتجة عن استخدام NavDisplay أثناء معاينات AndroidStudio. (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 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • يحتوي 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 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • لم تعُد الطريقة 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. تمت إعادة تصميم أداة التزيين أيضًا من دالة إلى فئة لأنّها تعمل وظيفيًا كمصنع لـ NavEntryDecorator. (Ie6013، b/447381176)
  • لم يعُد مطلوبًا من العروض المخصّصة التي تستخدم SceneState كبديل لاستخدام NavDisplay استخدام اللغة المحلية للمقطوعة LocalEntriesToRenderInCurrentScene، لأنّها أصبحت الآن داخلية. (Ic40ef، b/414668196)
  • تمت إزالة SceneSetupNavEntryDecorator وrememberSceneSetupNavEntryDecorator() من مساحة واجهة برمجة التطبيقات العلنية. تتوفّر هذه الوظيفة الآن تلقائيًا بدون الحاجة إلى تضمينها يدويًا. (Ieae42، b/444479133)
  • تتضمّن الآن جميع الفئات NavEntry وDialogScene وSinglePaneScene وSceneState الدالة equals. (I96121)
  • تتضمّن واجهة المشهد حقل بيانات وصفية جديدًا لإرفاق بيانات وصفية خاصة بالمشهد في NavDisplay. يسمح ذلك لـ Scene بتجاوز البيانات الوصفية في NavDisplay، على سبيل المثال مع عمليات الانتقال. (I1fd96، b/443955625)
  • بسِّط توقيع rememberNavBackStack عن طريق إزالة مَعلمة النوع العام المكرّرة. تقبل الدالة الآن vararg elements: NavKey. (I03e45)
  • أصبحت الرسوم المتحركة التلقائية في NavDisplay جزءًا من واجهة برمجة التطبيقات الشائعة التي تتيح استدعاءها من جميع المنصات. (I71af9، b/447147159)
  • أعِد تسمية EntryProviderBuilder إلى EntryProviderScope لتعكس بدقة أنّ الفئة هي لغة خاصة بالنطاق (DSL) في Kotlin توفّر نطاقًا لإنشاء 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 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • أضِف حمولة زائدة جديدة NavDisplay تأخذ قائمة NavEntry<T> تم تزيينها بواسطة rememberDecoratedNavEntries. (I4025b، b/441940314)
  • تم نقل DialogScene إلى حزمة جديدة. (Ia5840)
  • إزالة واجهة برمجة التطبيقات العامة DecorateNavEntry بدلاً من ذلك، استخدِم rememberDecoratedNavEntries لتضمين NavEntry مع قائمة من أدوات التزيين. (Id8c09)
  • توفّر واجهة مستخدم Navigation3 الآن خصائص transitionSpec تلقائية جديدة. (Ibcabd)
  • تمت إضافة عنصر SceneState جديد للمساعدة في إدارة المشاهد. يوفّر ذلك أيضًا عملية تحميل زائدة جديدة NavDisplay تأخذ SceneState وNavigationEventState. (Idfb46، b/444479133)
  • تتيح لك NavDisplay الآن تخصيص عمليات الانتقال استنادًا إلى Scene التي ستنتقل إليها أو منها من خلال النظر إلى currentState وtargetState في Transition. (I906cc، b/443872322)
  • أصبح NavigationEventInfo الآن abstract class بدلاً من interface. عدِّل جميع عمليات التنفيذ المخصّصة لتتضمّن الفئة (مثل data class MyInfo : NavigationEventInfo()). (I1e59c، b/444734264)
  • تم تعديل واجهات برمجة التطبيقات لمعالج navigationevent-compose. يتوافق النوعان NavigationEventHandler وNavigationBackHandler (والأنواع الفرعية) الآن مع تحميل زائد جديد يقبل NavigationEventStates تم نقلها إلى الأعلى. يتم الاحتفاظ بعمليات التحميل الزائد البسيطة (التي تتضمّن currentInfo) وتستخدم الآن نموذج الحالة الجديد هذا داخليًا. (Ic3251، b/444734264)
  • تم نقل جميع واجهات برمجة التطبيقات Scene إلى navigation3-runtime بدلاً من navigation3-ui. وهذا يعني أنّها أصبحت متاحة الآن على جميع المنصات المتوافقة مع navigation3-runtime. (I431d0، b/444449993)
  • تمت إضافة حمولة زائدة جديدة rememberDecoratedNavEntries تأخذ قائمة NavEntry لتزيينها. يمكن أن تكون إدخالات الإدخال مزيّنة مسبقًا بمزيّنات إدخال أخرى. (I5a034، b/444230270)
  • إزالة مَعلمات نوع حرف البدل navigation3 (I02540)
  • تم تحسين التعامل مع الأنواع العامة للغة entryProvider الخاصة بالمجال. إذا كنت تستورد androidx.navigation3.runtime.entry في السابق، لم يعُد ذلك مطلوبًا. (I299fc)
  • يجب حصر التحميل الزائد NavBackStackSerializer المستند إلى الانعكاس على Android. يمنع ذلك حدوث أخطاء تسلسلية ضمنية في وقت التشغيل على الأنظمة الأساسية غير Android من خلال فرض استخدام التحميل الزائد الصريح SavedStateConfiguration في الرمز البرمجي المتوافق مع عدة أنظمة أساسية. (I73313، b/420443609)
  • اجعل NavigationEvent swipeEdge @IntDef (Icee54، b/443950342)
  • حصر تسلسل NavBackStack بنظام التشغيل Android يمنع ذلك حدوث أخطاء في وقت التشغيل على المنصات غير التابعة لنظام التشغيل Android. لحفظ الحالة على عدة منصات، استخدِم عملية التحميل الزائد rememberNavBackStack مع 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 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • تم استبدال DecoratedNavEntryProvider بـ rememberDecoratedNavEntries الذي ينشئ NavEntries ويعرضها مع قائمة أدوات التزيين المتوفّرة (I0fe1c، b/441328236)
  • أصبح NavBackStack الآن عامًا على مستوى النوع NavKey. يتيح ذلك للتطبيقات والمكتبات تحديد أنواع مفاتيح مخصّصة لمكدّسات الرجوع، بدلاً من الاقتصار على NavKey. (I4d190 وIad2f4 وb/420443609)
  • أصبحت NavBackStack الآن @kotlinx.serialization.Serializable، ما يتيح حفظ حالة التنقّل واستعادتها عند إيقاف العملية وتغيير الإعدادات بدون الحاجة إلى كتابة المزيد من الرموز النموذجية. (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. يتوافق Navigation3 Runtime الآن مع الأنظمة الأساسية التالية بشكلٍ كامل: JVM (Android وDesktop)، وNative (Linux وiOS وwatchOS وmacOS وMinGW)، والويب (JavaScript وWasmJS). (I55078، b/424410398، b/419294028، b/419046226). ملاحظة: لا يوفّر ذلك استهدافات KMP لعنصر Navigation3 UI. على المنصات الأخرى، عليك تنفيذ NavDisplay مخصّص خاص بك. إذا أردت أن تصبح هذه الميزة متاحة، يُرجى التصويت على المشكلة في Jetbrains هنا ومتابعة حالة الطلب للحصول على دعم إضافي.
  • أصبح الكائن NavDisplayInfo الآن متاحًا للجميع ويمكن استخدامه لاسترداد قائمة الإدخالات المرئية من NavDisplay. (Ibc91f)

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة NavBackStackSerializer جديد لاستخدامه مع rememberNavBackStack لتنفيذ عملية استعادة الحالة. يتلقّى rememberNavBackStack() الآن أيضًا SavedStateConfiguration يمكن استخدامه لتقديم الإعدادات الخاصة بك. (I2f4d2 وI4cd58 وb/420443609)

إصلاح الأخطاء

  • تم إصلاح مشكلة كانت تتسبب في تشغيل أحداث Lifecycle غير صحيحة عند التنقّل. (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 من المستوى 21 لواجهة برمجة التطبيقات إلى المستوى 23 لواجهة برمجة التطبيقات (Ibdfca وb/380448311 وb/435705964 وb/435705223).

تغييرات واجهة برمجة التطبيقات

  • تستخدم مكتبة 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 يوليو 2022

تم طرح androidx.navigation3:navigation3-*:1.0.0-alpha05. يتضمّن الإصدار ‎1.0.0-alpha05 هذه التعديلات.

التغييرات في السلوك

  • تستند حالة NavEntry الآن بشكل صارم إلى قائمة أدوات التزيين الحالية التي تم تمريرها إلى NavDisplay. وهذا يعني أنّه يجب تبديل أدوات التزيين على طول حِزم الخلفية في حال توفّر حِزم خلفية متعددة من أجل الحفاظ على حالة NavEntry في حزمة الخلفية. وفي حال عدم توفّرها، ستتم إزالة الحالات كما لو تم إيقاف الإدخالات (بدلاً من التبديل). (I7a759، b/428033667)

الإصدار ‎1.0.0-alpha04

‫18 يونيو 2025

تم طرح androidx.navigation3:navigation3-*:1.0.0-alpha04. يتضمّن الإصدار ‎1.0.0-alpha04 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • NavEntry.content خاصة الآن. لاستدعاء محتوى NavEntry، استخدِم واجهة برمجة التطبيقات الجديدة 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 حالات أداة الزخرفة للعناصر 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. يمكن للمطوّرين تقديم حالتهم الخاصة مباشرةً إلى الدالة القابلة للإنشاء 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.