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-alpha01" implementation "androidx.navigation3:navigation3-ui:1.3.0-alpha01" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.3.0-alpha01") implementation("androidx.navigation3:navigation3-ui:1.3.0-alpha01") }
لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات الإصدار.
الملاحظات
تساعدنا ملاحظاتك في تحسين 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
- تتيح واجهة برمجة التطبيقات الجديدة هذه تمرير النتائج بين
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لإنشاء سجلّ الأنشطة السابقة الاصطناعي عند العثور على تطابق ناجح للرابط العميق. يمكن إنشاء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 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إعادة تصميم
DeepLinkRequest.extrasمنMap<String, Any>إلى فئة جديدة تشبه الخريطة وآمنة من حيث النوعRequestExtras، وتخزِّن أزواجًا منRequestExtrasKey<T>إلىT. يمكن إنشاء مثيلRequestExtrasباستخدام لغة DSLrequestExtras. (Ic929d، b/543883369)
إصلاح الأخطاء
- تم إصلاح مشكلة عدم تحرُّك الإيماءات التنبؤية للرجوع التي يتم تفعيلها أثناء الانتقال إلى الأمام استجابةً لمستوى تقدّم التمرير السريع. سيتم الآن عرض صور متحركة لإيماءة إظهار شاشة الرجوع وإكمالها بشكل صحيح. (Icdcb0، b/456218398)
- تمت إضافة عملية فحص lint للتأكّد من أنّ عمليات تنفيذ
Sceneهي إما فئات بيانات أو تنفّذ الدالتَين equals وhashcode لضمان استخدامSceneنفسه عند الاقتضاء. (Ibdf0d، b/542316099) - يتم ضبط قيمة
NavEntry.contentKeyتلقائيًا على مجموعة منkey.toString()وkey::class.toString(). يضمن ذلك ألا يكون لكائنات البيانات التي تحمل الاسم نفسه ولكنها تنفّذ واجهات مختلفةcontentKeyنفسه. ومع ذلك، لا تعرض منصة JavaScriptkey::classسوى اسم الفئة البسيط بدلاً من الاسم المؤهَّل بالكامل، لذا يجب أن تواصل منصة JavaScript تنفيذ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 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة فئة مجرّدة
WrappedMatchResultلتضمين فئة أخرىDeepLinkMatcher.MatchResult. يتيح ذلك عرض نتائج مباريات مخصّصة فوق بعضها البعض. (I7d4dc، b/470282247) تمت إضافة فئة
BackStackMatcherجديدة تأخذ مَعلمتَين: مثيل أداة مطابقة، ودالة lambda منشئ توفّر نتيجة مطابقة أداة المطابقة للإدخال وتعرض الأنشطة السابقة. عند العثور على تطابق ناجح، تعرض الدالةBackStackMatcherالقيمةBackStackMatchResultالتي توسّعWrappedMatchResultالتي تحتوي على نتيجة التطابق الأصلية بالإضافة إلى سجلّ الرجوع الذي تم إنشاؤه باستخدام تعبير 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 منAny?إلىAny. (I6bf1a)يتم الآن ضبط حقل أداة إنشاء
DeepLinkRequesturiتلقائيًا على القيمة الخالية. تمت إعادة تسميةuriStringللدالة الإنشائية الثانوية إلىuri. (Ia0f14، b/522194187)
إصلاح الأخطاء
- يستخدم
ResultEffectالآنrememberUpdatedStateلالتقاط أحدث دالةonResultLambda. (I7d2a3، b/531709234) - تم إصلاح مطابقة الروابط لصفحات معيّنة في التطبيق مع أجزاء المسار الفارغة. إذا كان نوع الوسيطة هو "سلسلة"، سيتم التعامل مع المسار الفارغ كقيمة سلسلة فارغة. بخلاف ذلك، سيتم التعامل مع المسار الفارغ على أنّه لم يتم تقديم أي قيمة وسيتم الرجوع إلى القيمة التلقائية. إذا لم تكن هناك قيمة تلقائية، سيتعذّر الربط. (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مع الطلب إذا كان نمط معرّف الموارد المنتظم لا يحتوي على نظام أو لا يبدأ بشرطتين مائلتين مزدوجتين. على سبيل المثال، ستتم الآن مطابقةwww.example.com/homeمعhttp://www.example.com/home. (Ia6b65، b/522791926)
الإصدار 1.2.0-alpha05
01 يوليو 2026
تم طرح androidx.navigation3:navigation3-*:1.2.0-alpha05. يتضمّن الإصدار 1.2.0-alpha05 هذه التعديلات.
واجهة برمجة تطبيقات جديدة
- تمت إضافة واجهة برمجة تطبيقات
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)
التغييرات في واجهة برمجة التطبيقات
DeepLinkRequest
- إزالة الدالة الأصلية
fromActionلإنشاء طلب مرتبط بإجراء، استخدِم الحقل الجديدDeepLinkRequest.extras.(Id0c90، b/513200887) - تمت إزالة دالة المصنع
fromMimeType. لإنشاء طلب مرتبط بنوع MIME، استخدِم الحقل الجديدDeepLinkRequest.extras. (I85131، b/513200887) - (على أجهزة Android فقط) تمت إزالة الدالة
fromIntentالخاصة بالمصنع. تم استبداله بمنشئ جديد يأخذ Intent وخريطة إضافات. (Ia0498، b/513200887، b/522194187) - تمت إزالة الدالتَين
fromUriوfromUriString. تم استبدالها بمنشئات جديدة تقبل إماDeepLinkUriأو معرّف موارد منتظمًا (URI) كسلسلة أولية. (Id5b6f، b/522194187) - تتلقّى الفئتان
DeepLinkMatcherوDeepLinkMatcher.MatchResultوفئاتهما الفرعية الآن T متغيرًا مشتركًا (خارج T) حتى لا تحتاج المفاتيح الهرمية إلى تحويل النوع عند استخدامها مع Matchers. (I1e453، b/525094876) - يتم الآن ضبط قيمة المَعلمة
UriMatchResultالخاصة بإنشاء خريطة الوسيطات على خريطة فارغة تلقائيًا. (I3acdd) - أصبحت فئة
DeepLinkMatcher.Filterالمجردة الآن واجهة وظيفية. تمت إزالة حقل أداة الإنشاءfilter، وبدلاً من ذلك يجب تمريره مباشرةً في الفئة الفرعية. (I9eb7d، b/522194187)
إصلاح الأخطاء
- تم إصلاح مشكلة اختفاء الإدخال المنبثق فورًا عند الانتقال إلى إدخال يحتوي على بيانات وصفية متداخلة تتضمّن قيم lambda. (Idb872، b/520494430)
- تم إصلاح
UriDeepLinkMatcherليعرض قيمة فارغة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الآن قيمة فارغة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 هذه التعديلات.
الميزات الجديدة
يتيح الإصدار 3 من Navigation الآن استخدام الروابط لصفحات معيّنة مع DeepLinkRequest وDeepLinkMatcher:
DeepLinkRequestرابط لصفحة في التطبيق يحتوي علىDeepLinkUriونوع MIME أو إجراء اختياري(على أجهزة 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 لـandroid.net.Uri(Id4725، b/470282247)
التغييرات في واجهة برمجة التطبيقات
- تمت ترقية الإصدار إلى
compileSdk 37لمطابقة compileSdk في Compose
إصلاح الأخطاء
- تم إصلاح
IllegalArgumentExceptionفيAnimatedBottomSheetSampleعند عرض تراكبات متعددة. سيحسب المثالSceneStrategyالآن بشكلٍ صحيح آخر قيمة غيرOverlaySceneويعرضها تحت جميع المشاهد المتراكبة. (If2281، b/506733412) - تمت ترقية إصدار التبعية
NavigationEventإلى 1.1.1، ما يؤدي إلى إزالة NavigationEventHandler غير الفعّال عند استخدام وضع الفحص لتفعيل ميزة "إيماءة إظهار شاشة الرجوع" في الإصدارات التجريبية من "استوديو Android". (I487fd)
الإصدار 1.2.0-alpha02
22 أبريل 2026
تم طرح androidx.navigation3:navigation3-*:1.2.0-alpha02. يتضمّن الإصدار 1.2.0-alpha02 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- أعِد تسمية
onBackإلىonBackCompletedوأضِفonBackCancelledإلى NavigationBackHandler لتوفير إمكانية التعامل مع إيماءات الرجوع التي تم إلغاؤها. (I92741) - أضِف
NavigationBackHandlerلتبسيط التعامل مع إيماءات الرجوع وإيماءة الرجوع التوقّعية عند استخدامSceneState. يتيح ذلك للمطوّرين إنشاء مكوّنات واجهة مستخدم مخصّصة بسهولة أكبر تتوافق مع التنقّل للخلف العادي والإيماءات التوقّعية بدون احتساب الفروق في الأنشطة السابقة يدويًا. (I6a055) - أضِف
rememberNavigationEventStateلتسهيل عملية الربطSceneStateمن خلال معالجة إيماءة إظهار شاشة الرجوع. (Iae49c)
الميزات الجديدة
- تمت إضافة واجهة برمجة تطبيقات
ResultEventBusللسماح بتمرير النتائج بين 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)
Navigation3 الإصدار 1.1
الإصدار 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نفسه. ومع ذلك، لا تعرض منصة JavaScriptkey::classسوى اسم الفئة البسيط بدلاً من الاسم المؤهَّل بالكامل، لذا يجب أن تواصل منصة JavaScript تنفيذcontentKeyالمخصّص لكائنات البيانات التي تحمل أسماء مكرّرة. (I1fbbb، b/512534342) - تم إصلاح الخطأ
IllegalArgumentExceptionالذي تم طرحه بواسطةSaveableStateHolderبسبب إعادة استخدام المفتاح عندما تكون عمليات انتقال متعددة إلى الأنشطة السابقة قيد التنفيذ في الوقت نفسه بسبب الرجوع السريع من الأنشطة السابقة. (I4d728، b/516312097)
الإصدار 1.1.5
29 يوليو 2026
تم طرح androidx.navigation3:navigation3-*:1.1.5. يتضمّن الإصدار 1.1.5 هذه التعديلات.
إصلاح الأخطاء
- تعطي
entryProviderلغة DSL الآن الأولويةNavEntryالتي تم إنشاؤها باستخدام مثيل مفتاح، مثلentry(key = userKey) { ... }علىNavEntryالتي تم إنشاؤها باستخدام فئة مفتاح مثلentry<UserKey>{ ... }.(Ib5ec9، b/533331924)
الإصدار 1.1.4
01 يوليو 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 الذي أزالNavigationEventHandlerغير الفعّال عند استخدام وضع الفحص لتفعيل ميزة "الرجوع التوقّعي" في الإصدارات التجريبية من "استوديو Android".
الإصدار 1.1.2
19 مايو 2026
تم طرح androidx.navigation3:navigation3-*:1.1.2. يتضمّن الإصدار 1.1.2 هذه التعديلات.
إصلاح الأخطاء
- تمت ترقية تبعية
NavigationEventإلى الإصدار 1.1.1 الذي أزالNavigationEventHandlerغير الفعّال عند تفعيل وضع الفحص لتفعيل ميزة "الرجوع التوقّعي" في الإصدارات التجريبية من "استوديو Android".
الإصدار 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 المتحركة
- تحتوي واجهة OverlayScene على دالة رد نداء جديدة onRemoved لتعليق التنفيذ. يتم استدعاء دالة الرجوع هذه بعد إزالة مفتاح مرتبط بالمشهد من سجلّ الرجوع، ولكن قبل مغادرته التركيب. يسمح ذلك بإكمال الصور المتحركة للخروج التي يتم استدعاؤها في 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. يضمن ذلك استمرار عمل واجهات برمجة التطبيقات، مثل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 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- يستخدم نظاما التشغيل
NavDisplayوrememberSceneStateالآنList<SceneStrategy>بدلاً من المَعلمة الفردية السابقةSceneStrategyالتي تم ربطها باللاحقةthen. يتوافق ذلك بشكل أكبر معList<SceneDecoratorStrategy<T>>التي تستخدمها كلتا واجهتَي برمجة التطبيقات حاليًا. تم إيقاف العمل بواجهات برمجة التطبيقات السابقة. (I78b2c، b/482108465) - تمت إضافة عامل التشغيل #contains الخاص بالبيانات الوصفية للتحقّق مما إذا كانت خريطة البيانات الوصفية تحتوي على
NavMetadataKeyالمحدّد. (Ic30db، b/485311895) - تمت إضافة
NavMetadataKeyDialogKeyلاستخدامها معDialogSceneStrategyفي لغة المجال الخاصة بالبيانات الوصفية. (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)
التغييرات في واجهة برمجة التطبيقات
- تتضمّن واجهة
OverlaySceneدالة معاودة الاتصال الجديدةonRemovedالخاصة بالإيقاف المؤقت. يتم استدعاء دالة الرجوع هذه بعد إزالة مفتاح مرتبط بالمشهد من سجلّ الرجوع، ولكن قبل مغادرته التركيب. يسمح ذلك بإكمال الصور المتحركة للخروج التي يتم استدعاؤها ضِمنonRemovedقبل إزالة مشهد التراكب من التركيب. (I29a72، b/440558061) - تم فصل دالة الزخرفة في
SceneStrategyإلى دالة جديدةSceneDecoratorStrategy. هذه الواجهة الجديدة هي التي يجب استخدامها لتزيين المشاهد. تتوفّر واجهات برمجة تطبيقات جديدة لـNavDisplayوrememberSceneStateتتيح إضافةSceneDecoratorStrategies. (If9385، b/477669607، b/477670333)
إصلاح الأخطاء
- تم إصلاح خطأ كان يحدث عند تمرير
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 هذه التعديلات.
الميزات الجديدة
- يمكنك الآن إضافة بيانات وصفية بشكل ديناميكي مع مراعاة مفتاح الإدخال من خلال
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 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تتيح
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!
- أصبحت مكتبة 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 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- يحتوي
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) - لم يعُد
onBacklambda الذي تم تمريره إلىNavDisplayوإلىSceneStrategyيوفّر المَعلمةcount: Intللإشارة إلى الوقت الذي يجب فيه إزالة إدخالات متعددة. بدلاً من ذلك، سيتم الآن استدعاء دالة lambda() -> Unitعدة مرات على التوالي في الحالة النادرة التي تظهر فيها طلبات "المشهد" عدة إدخالات. (Idedb5، b/446989346) - أزِل الفئة
NavEntryWrapperواستبدِل وظيفتها بفئةNavEntryنهائية تتضمّن دالة إنشاء ثانوية جديدة تأخذNavEntryمع محتوى جديد. سيسمح ذلك بمواصلة إتاحة إمكانية تضمين إدخال بمحتوى جديد. (I7da2a، b/444447130) - تمت إزالة الدالة
navEntryDecoratorالتي تنشئ وتعرضNavEntryDecoratorواستبدالها بفئةNavEntryDecoratorالتي أصبحت متاحة الآن للجميع ويمكن إنشاء فئات فرعية منها. (If81f8، b/444447434، b/447381176) - تمت إعادة تسمية
SavedStateNavEntryDecoratorإلىSaveableStateHolderNavEntryDecoratorلأنّها تزين الإدخالات بـSaveableStateHolder. تمت إعادة تصميم أداة التزيين أيضًا من دالة إلى فئة لأنّها تعمل وظيفيًا كمصنع لـNavEntryDecorator. (Ie6013، b/447381176) - لم يعُد من الضروري استخدام
LocalEntriesToRenderInCurrentScenecomposition local، الذي أصبح الآن داخليًا، مع العروض المخصّصة التي تستخدمSceneStateكبديل لاستخدامNavDisplay. (Ic40ef، b/414668196) - تمت إزالة
SceneSetupNavEntryDecoratorوrememberSceneSetupNavEntryDecorator()من مساحة واجهة برمجة التطبيقات المتاحة للجميع. تتوفّر هذه الوظيفة الآن تلقائيًا بدون الحاجة إلى تضمينها يدويًا. (Ieae42، b/444479133) - تتضمّن الآن كل من
NavEntryوDialogSceneوSinglePaneSceneوSceneStateالدالة equals. (I96121) - تتضمّن واجهة المشهد حقل بيانات وصفية جديدًا لإرفاق بيانات وصفية خاصة بالمشهد في NavDisplay. يتيح ذلك لـ "مشهد" إلغاء بيانات التعريف في
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(والسمات المتغيرة) تحميلًا جديدًا يقبل السمةNavigationEventStateالتي تم نقلها. يتم الاحتفاظ بالتحميلات الزائدة البسيطة (التي تتضمّنcurrentInfo) وتستخدم الآن نموذج الحالة الجديد هذا داخليًا. (Ic3251، b/444734264) - تم نقل جميع واجهات برمجة التطبيقات الخاصة بالمشاهد من navigation3-ui إلى navigation3-runtime. وهذا يعني أنّها أصبحت متاحة الآن على جميع المنصات المتوافقة مع 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) - تحويل
swipeEdgeمنNavigationEventإلى@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)
التغييرات في الاعتماديات
- تعتمد Navigation3 الآن على NavigationEvent Alpha08.
الإصدار 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)
تحديث الاعتمادية
- تعتمد Navigation3 الآن على حدث التنقّل
1.0.0-alpha06.
الإصدار 1.0.0-alpha06
30 يوليو 2025
تم طرح androidx.navigation3:navigation3-*:1.0.0-alpha06. يتضمّن الإصدار 1.0.0-alpha06 هذه التعديلات.
تحديث الاعتمادية
- تعتمد Navigation3 الآن على حدث التنقّل
1.0.0-alpha05.
الإصدار 1.0.0-alpha05
2 يوليو 2025
تم طرح 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.