يشير التنقل إلى التفاعلات التي تتيح للمستخدمين التنقل عبر أجزاء مختلفة من المحتوى داخل تطبيقك والدخول إليها والعودة منها.
يشتمل مكوِّن التنقل في Android Jetpack على مكتبة التنقل، والمكوّن الإضافي Safe Args Gradle، وأدوات تساعدك في تنفيذ التنقل في التطبيق. يتعامل مكوِّن التنقل مع حالات استخدام متنوعة للتنقل، من النقرات المباشرة على الأزرار إلى الأنماط الأكثر تعقيدًا، مثل أشرطة التطبيقات ودرج التنقل.
المفاهيم الرئيسية
يقدم الجدول التالي نظرة عامة على المفاهيم الأساسية في التنقل والأنواع الرئيسية التي تستخدمها لتنفيذها.
الفكرة |
الغرض |
Type |
---|---|---|
المضيف |
عنصر في واجهة مستخدم يحتوي على وجهة التنقّل الحالية أي، عندما يتنقل المستخدم عبر أحد التطبيقات، يبدّل التطبيق الوجهات من داخل مضيف التنقل وخارجه. |
|
رسم بياني |
هيكل بيانات يحدد جميع وجهات التنقل داخل التطبيق وكيفية اتصالها معًا. |
|
وحدة التحكّم |
المنسق المركزي لإدارة التنقل بين الوجهات تقدم وحدة التحكم طرقًا للتنقل بين الوجهات والتعامل مع الروابط المؤدية إلى صفحات في التطبيق وإدارة الحزمة الخلفية والمزيد. |
|
الوجهة |
عقدة في الرسم البياني للتنقل. عندما ينتقل المستخدم إلى هذه العقدة، يعرض المضيف محتواها. |
يتم إنشاؤها عادةً عند إنشاء الرسم البياني للتنقل. |
مسار الجولة |
تحديد الوجهة وأي بيانات مطلوبة بشكل فريد. يمكنك التنقّل باستخدام المسارات. تنقلك المسارات إلى الوجهات. |
أي نوع بيانات تسلسلية. |
المزايا والميزات
يوفر مكوِّن التنقل عددًا من الفوائد والميزات الأخرى، بما في ذلك ما يلي:
- الصور المتحركة والانتقالات: توفر موارد موحدة للصور المتحركة والانتقالات.
- الربط بصفحة معيّنة:يؤدي هذا الخيار إلى تنفيذ الروابط لصفحات في التطبيق التي تنقل المستخدم مباشرةً إلى وجهة معيّنة والتعامل معها.
- أنماط واجهة المستخدم: تتيح استخدام أنماط مثل أدراج التنقل والتنقل السفلي مع الحد الأدنى من العمل الإضافي.
- أمان النوع: يتضمّن الدعم لتمرير البيانات بين الوجهات باستخدام type Safety.
- دعم ViewModel: يفعِّل هذا الخيار تحديد نطاق
ViewModel
إلى رسم بياني للتنقّل لمشاركة البيانات المتعلقة بواجهة المستخدم بين وجهات الرسم البياني. - المعاملات المجزّأة: تتيح هذه الميزة المعاملات المجزّأة وتعالجها بالكامل.
- الاحتفاظ بنسخة احتياطية والاحتفاظ بنسخة احتياطية: لمعالجة إجراءات الاحتفاظ بنسخة احتياطية والنسخ الاحتياطية بشكل صحيح بشكل تلقائي
إعداد البيئة
لتضمين دعم التنقل في مشروعك، أضِف التبعيات التالية إلى ملف build.gradle
في تطبيقك:
رائع
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.4" // 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.4" // 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
،
بالإضافة إلى تفاصيل حول كيفية تفاعله مع Compose وإطارات عمل واجهة المستخدم الأخرى،
يُرجى الاطّلاع على الأدلة التالية:
- إنشاء وحدة تحكّم في التنقّل: توضّح هذه المقالة كيفية إنشاء
NavController
. - إنشاء الرسم البياني للتنقّل: تعرض هذه الصفحة تفاصيل حول كيفية إنشاء مضيف للتنقّل ورسم بياني للتنقّل.
- الانتقال إلى وجهة: توضِّح كيفية استخدام
NavController
للتنقل بين الوجهات في الرسم البياني.
الدروس التطبيقية حول الترميز
- التعرُّف على ميزة التنقّل في Jetpack
- أجزاء ومكوِّن التنقّل
- إنشاء تطبيق تكيُّفي باستخدام التنقُّل الديناميكي
الفيديوهات الطويلة
- التنقل أثناء التنقل
- أفضل 10 ممارسات للانتقال إلى نشاط واحد
- نشاط واحد: الأسباب والحالات وكيفية الاستخدام (مؤتمر Android Dev Summit لعام 2018)
- Android Jetpack: إدارة التنقل في واجهة المستخدم باستخدام وحدة التحكّم في التنقل (Google I/O '18)