يشير التنقل إلى التفاعلات التي تتيح للمستخدمين التنقل عبر أجزاء مختلفة من المحتوى داخل تطبيقك والوصول إليها والعودة منها.
يشتمل مكوِّن التنقل في Android Jetpack على مكتبة التنقل والمكوّن الإضافي Safe Args Gradle وأدوات لمساعدتك في تنفيذ التنقل بين التطبيقات. يتعامل عنصر التنقل مع حالات استخدام متنوعة للتنقل، بدءًا من النقرات المباشرة على الأزرار إلى الأنماط الأكثر تعقيدًا، مثل أشرطة التطبيقات ودرج التنقل.
المفاهيم الرئيسيّة
يقدم الجدول التالي نظرة عامة على المفاهيم الرئيسية الثلاثة في التنقل والأنواع الرئيسية التي تستخدمها لتنفيذها.
الفكرة |
الغرض |
Type |
---|---|---|
المضيف |
عنصر في واجهة مستخدم يحتوي على وجهة التنقّل الحالية وهذا يعني أنه عندما ينتقل المستخدم خلال أحد التطبيقات، يبدّل التطبيق بشكل أساسي الوجهات من داخل مضيف التنقل وخارجه. |
|
رسم بياني |
هيكل بيانات يحدد جميع وجهات التنقل داخل التطبيق وكيف تتصل معًا. |
|
وحدة التحكّم |
المنسق المركزي لإدارة التنقل بين الوجهات. توفر وحدة التحكم طرقًا للتنقل بين الوجهات، والتعامل مع الروابط لصفحات في التطبيق، وإدارة الحزمة الخلفية، والمزيد. |
المزايا والميزات
يوفر مكوِّن التنقل عددًا من المزايا والميزات الأخرى، بما في ذلك ما يلي:
- الصور المتحركة والانتقالات: توفر موارد موحّدة للصور المتحركة والانتقالات.
- الربط بصفحة معيّنة:لتنفيذ هذه الروابط، يتم استخدام الروابط لصفحات في التطبيق والتي تنقل المستخدم إلى وجهة معيّنة مباشرةً.
- أنماط واجهة المستخدم: تتيح استخدام أنماط مثل أدراج التنقل والتنقل السفلي بأقل قدر من العمل الإضافي.
- أمان النوع: يتضمّن المكوّن الإضافي Safe Args Gradle الذي يوفّر أمان الكتابة عند التنقّل وتمرير البيانات بين الوجهات.
- إتاحة ViewModel: تتيح هذه الميزة تحديد نطاق
ViewModel
على رسم بياني للتنقّل لمشاركة البيانات المتعلقة بواجهة المستخدم بين وجهات الرسم البياني. - المعاملات الجزئية: تتيح هذه الميزة المعاملات المجزأة وتعالجها بالكامل.
- الاحتفاظ بنسخة احتياطية أو الاحتفاظ بنسخة احتياطية: لمعالجة إجراءات الاحتفاظ بنسخة احتياطية أو الاحتفاظ بنسخة احتياطية بشكل صحيح تلقائيًا.
إعداد البيئة
لتضمين دعم التنقل في مشروعك، أضِف التبعيات التالية إلى ملف build.gradle
لتطبيقك:
رائع
dependencies { def nav_version = "2.7.7" // Java language implementation implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" // Kotlin implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" // Feature module Support implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version" // Testing Navigation androidTestImplementation "androidx.navigation:navigation-testing:$nav_version" // Jetpack Compose Integration implementation "androidx.navigation:navigation-compose:$nav_version" }
Kotlin
dependencies { val nav_version = "2.7.7" // Java language implementation implementation("androidx.navigation:navigation-fragment:$nav_version") implementation("androidx.navigation:navigation-ui:$nav_version") // Kotlin implementation("androidx.navigation:navigation-fragment-ktx:$nav_version") implementation("androidx.navigation:navigation-ui-ktx:$nav_version") // Feature module Support implementation("androidx.navigation:navigation-dynamic-features-fragment:$nav_version") // Testing Navigation androidTestImplementation("androidx.navigation:navigation-testing:$nav_version") // Jetpack Compose Integration implementation("androidx.navigation:navigation-compose:$nav_version") }
للحصول على معلومات بشأن إضافة مكونات بنية أخرى إلى مشروعك، يمكنك الاطّلاع على إضافة مكونات إلى مشروعك.
الخطوات التالية
لمزيد من الوثائق والموارد المتعلقة بمكون التنقل، راجع الموارد التالية.
الأدلة التفصيلية
للاطّلاع على مزيد من المعلومات حول كيفية تنفيذ مضيف التنقّل وNavController
،
بالإضافة إلى تفاصيل حول كيفية تفاعله مع Compose وأُطر عمل واجهة المستخدم الأخرى، يمكنك الاطّلاع
على الأدلة التالية:
- إنشاء وحدة تحكّم في التنقّل: توضّح كيفية إنشاء
NavController
. - إنشاء الرسم البياني للتنقل: تفاصيل حول كيفية إنشاء مضيف تنقُّل ورسم بياني للتنقّل.
- الانتقال إلى وجهة: توضّح كيفية استخدام
NavController
للتنقل بين الوجهات في الرسم البياني.
الدروس التطبيقية حول الترميز
- التعرّف على ميزة التنقّل في Jetpack
- الأجزاء ومكوِّن التنقّل
- إنشاء تطبيق تكيُّفي باستخدام التنقُّل الديناميكي
الفيديوهات الطويلة
- التنقل أثناء التنقل
- أفضل 10 ممارسات للانتقال إلى نشاط واحد
- نشاط فردي: لماذا ومتى وhHow (Android Dev Summit '18)
- Android Jetpack: إدارة التنقّل بين واجهة المستخدم باستخدام وحدة التحكّم في التنقّل (Google I/O '18)