التنقل

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

يتضمّن مكوّن التنقّل في Android Jetpack مكتبة التنقّل ومكوّن إضافي لـ Gradle يُسمى Safe Args وأدوات لمساعدتك في تنفيذ ميزة التنقّل في التطبيق. يعالج مكوّن "التنقّل" حالات استخدام متنوعة للتنقّل، بدءًا من النقرات المباشرة على الأزرار ووصولاً إلى الأنماط الأكثر تعقيدًا، مثل أشرطة التطبيقات ودرج التنقّل.

المفاهيم الرئيسية

يوفّر الجدول التالي نظرة عامة على المفاهيم الرئيسية في التنقّل والأنواع الرئيسية التي تستخدمها لتنفيذها.

الفكرة

الغرض

النوع

استضِف أصدقاءك وعائلتك

عنصر واجهة مستخدِم يحتوي على وجهة التنقّل الحالية وهذا يعني أنّه عندما ينتقل المستخدم عبر تطبيق، يبدّل التطبيق بشكل أساسي الوجهات داخل مضيف التنقّل وخارجه.

رسم بياني

بنية بيانات تحدّد جميع وجهات التنقّل داخل التطبيق وكيفية ربطها ببعضها

NavGraph

فئة "متحكم" (Controller)

المنسّق المركزي لإدارة التنقّل بين الوجهات يوفّر جهاز التحكّم طُرقًا للتنقّل بين الوجهات ومعالجة الروابط لصفحات في التطبيق وإدارة الحزمة الخلفية وغير ذلك.

NavController

الوجهة

عقدة في الرسم البياني للتنقّل عندما ينتقل المستخدم إلى هذه العقدة، يعرض المضيف محتواها.

NavDestination

يتم إنشاؤها عادةً عند إنشاء الرسم البياني للتنقّل.

مسار الجولة

يحدِّد وجهة بشكلٍ فريد وأي بيانات تتطلّبها.

يمكنك التنقّل باستخدام المسارات. تنقلك المسارات إلى الوجهات.

أي نوع بيانات قابل للتسلسل

المزايا والميزات

يقدّم مكوّن التنقّل عددًا من المزايا والميزات الأخرى، بما في ذلك ما يلي:

  • الحركات الانتقالية والرسوم المتحرّكة: يوفّر هذا القسم موارد موحّدة ل الحركات الانتقالية والرسوم المتحرّكة.
  • الربط بصفحة معيّنة: ينفِّذ ويعالج الروابط لصفحات في التطبيق التي تنقل المستخدِم مباشرةً إلى وجهة معيّنة.
  • أنماط واجهة المستخدم: تتيح أنماطًا مثل أدراج التنقّل والتنقّل في أسفل الشاشة بأقل قدر من العمل الإضافي.
  • أمان النوع: يتضمّن أمان النوع إمكانية تمرير البيانات بين الوجهات مع مراعاة أمان النوع.
  • توافق ViewModel: يتيح تحديد نطاق ViewModel لرسم بياني للتنقّل لمشاركة البيانات ذات الصلة بواجهة المستخدم بين وجهات الرسم البياني.
  • معاملات الأجزاء: تتيح هذه الميزة إجراء معاملات الأجزاء ومعالجتها بالكامل.
  • الرجوع والانتقال للأعلى: تعالج الإجراءات "الرجوع" و"الانتقال للأعلى" بشكل صحيح تلقائيًا.

إعداد البيئة

لتضمين ميزة التنقّل في مشروعك، أضِف التبعيات التالية إلىملف build.gradle في تطبيقك:

Groovy

plugins {
  // Kotlin serialization plugin for type safe routes and navigation arguments
  id 'org.jetbrains.kotlin.plugin.serialization' version '2.0.21'
}
  
dependencies {
  def nav_version = "2.8.6"

  // Jetpack Compose Integration
  implementation "androidx.navigation:navigation-compose:$nav_version"

  // Views/Fragments Integration
  implementation "androidx.navigation:navigation-fragment:$nav_version"
  implementation "androidx.navigation:navigation-ui:$nav_version"

  // Feature module support for Fragments
  implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"

  // Testing Navigation
  androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"

  // JSON serialization library, works with the Kotlin serialization plugin.
  implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3"
}

Kotlin

plugins {
  // Kotlin serialization plugin for type safe routes and navigation arguments
  kotlin("plugin.serialization") version "2.0.21"
}

dependencies {
  val nav_version = "2.8.6"

  // Jetpack Compose integration
  implementation("androidx.navigation:navigation-compose:$nav_version")

  // Views/Fragments integration
  implementation("androidx.navigation:navigation-fragment:$nav_version")
  implementation("androidx.navigation:navigation-ui:$nav_version")

  // Feature module support for Fragments
  implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version")

  // Testing Navigation
  androidTestImplementation("androidx.navigation:navigation-testing:$nav_version")

  // JSON serialization library, works with the Kotlin serialization plugin
  implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3")
}

للحصول على معلومات عن إضافة مكوّنات معمارية أخرى إلى مشروعك، اطّلِع على مقالة إضافة مكوّنات إلى مشروعك.

الخطوات التالية

لمزيد من المستندات والموارد المتعلّقة بمكوّن التنقّل، يُرجى الاطّلاع على الموارد التالية.

أدلة تفصيلية

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

الدروس التطبيقية حول الترميز

الفيديوهات

نماذج