navigation3

  
‫Navigation 3 هي مكتبة تنقّل جديدة مصمَّمة للعمل مع Compose.
آخر الأخبار الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار الأوّلي
‫27 أغسطس 2025 - - - 1.0.0-alpha08

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

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

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

Groovy

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

Kotlin

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

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

الملاحظات

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

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

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

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

الإصدار 1.0

الإصدار 1.0.0-alpha08

‫27 أغسطس 2025

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

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

  • تمّت إضافة أهداف جديدة من Kotlin MultiPlatform (KMP) إلى عناصر Navigation3 Runtime. يتوافق Navigation3 Runtime الآن مع الأنظمة الأساسية التالية بشكلٍ كامل: JVM (Android و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، ما أدّى إلى استناد "دورات الحياة" إلى المشاهد بدلاً من الإدخالات الفردية، وتم إصلاح هذا الخطأ في الإصدار التالي. (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 يوليو 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.