navigation3

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

تعريف التبعيات

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

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

Groovy

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

Kotlin

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

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

الملاحظات

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

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

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

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

الإصدار 1.0

الإصدار 1.0.0-alpha05

‫2 يوليو 2025

تم طرح androidx.navigation3:navigation3-*:1.0.0-alpha05. يحتوي الإصدار 1.0.0-alpha05 على عمليات الإيداع هذه.

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

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