تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
Navigation 3 هي مكتبة تنقّل جديدة مصمّمة للعمل مع ميزة "الإنشاء". باستخدام ميزة
التنقّل 3، يمكنك التحكّم بشكل كامل في الحزمة الخلفية، كما أنّ الانتقال إلى الوجهات والتنقّل منها هو أمر بسيط مثل إضافة العناصر وإزالتها من قائمة. ويؤدي ذلك إلى
إنشاء نظام مرن للتنقّل في التطبيق من خلال توفير ما يلي:
الاتفاقيات الخاصة بتصميم حزمة الرجوع، حيث يمثّل كل إدخال في حزمة الرجوع المحتوى الذي تنقّل إليه المستخدم
واجهة مستخدم يتم تعديلها تلقائيًا مع تغييرات الحزمة الخلفية (بما في ذلك الصور المتحركة)
نطاق للعناصر في الحزمة الخلفية، ما يسمح بالاحتفاظ بالحالة عندما يكون أحد
العناصر في الحزمة الخلفية
نظام تنسيقات تكيُّفية يسمح بعرض وجهات متعددة في الوقت نفسه، ويسمح بالتبديل السلس بين هذه التنسيقات
آلية للمحتوى للتواصل مع تنسيقه الرئيسي (البيانات الوصفية)
على مستوى عالٍ، يمكنك تنفيذ ميزة "التنقّل 3" بالطرق التالية:
حدِّد المحتوى الذي يمكن للمستخدمين الانتقال إليه في تطبيقك، مع منح كل محتوى مفتاحًا مختلفًا، وأضِف دالة لتحديد هذا المفتاح للمحتوى. راجِع مقالة حلّ مفاتيح التشفير
للوصول إلى المحتوى.
أنشئ حزمة مفاتيح رجوع يتم دفع المفاتيح إليها وإزالتها أثناء تنقّل المستخدمين في
تطبيقك. راجِع إنشاء حزمة مفاتيح رجوع.
استخدِم NavDisplay لعرض الحزمة الخلفية لتطبيقك. كلما تغيّرت مجموعة التطبيقات المضمّنة في الخلفية، يتم تعديل واجهة المستخدم لعرض المحتوى ذي الصلة. راجِع عرض
الحزمة الخلفية.
عدِّل استراتيجيات المشهد في NavDisplay حسب الحاجة لتوفير تصاميم قابلة للتكيّف مع الأنظمة الأساسية المختلفة.
تحسِّن واجهة برمجة التطبيقات Navigation 3 على واجهة برمجة التطبيقات الأصلية Jetpack Navigation API بالطرق التالية:
يوفّر عملية دمج أبسط مع ميزة "الإنشاء"
تمنحك إمكانية التحكّم الكامل في الحزمة الخلفية
يتيح إنشاء تنسيقات يمكنها قراءة أكثر من وجهة واحدة
من الحزمة الخلفية في الوقت نفسه، ما يسمح لها بالتكيّف مع التغييرات في
حجم النافذة والمدخلات الأخرى.
يمكنك الاطّلاع على مزيد من المعلومات حول مبادئ Navigation 3 وخيارات تصميم واجهة برمجة التطبيقات في مشاركة المدونة
هذه.
عيّنات الرموز البرمجية
يحتوي مستودع الوصفات على أمثلة على كيفية استخدام وحدات تأسيس
Navigation 3 لحلّ المشاكل الشائعة في التنقّل.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Navigation 3\n\n| **Experimental:** Navigation 3 is in alpha. The APIs may change in the future. Please file bugs and feedback using the [issue tracker](https://issuetracker.google.com/issues/new?component=1750212&template=2102223).\n\nNavigation 3 is a new navigation library designed to work with Compose. With\nNavigation 3, you have full control over your back stack, and navigating to and\nfrom destinations is as simple as adding and removing items from a list. It\ncreates a flexible app navigation system by providing:\n\n- Conventions for modeling a back stack, where each entry on the back stack represents content that the user has navigated to\n- A UI that automatically updates with back stack changes (including animations)\n- A scope for items in the back stack, allowing state to be retained while an item is in the back stack\n- An adaptive layout system that allows multiple destinations to be displayed at the same time, and allowing seamless switching between those layouts\n- A mechanism for content to communicate with its parent layout (metadata)\n\nAt a high level, you implement Navigation 3 in the following ways:\n\n1. Define the content that users can navigate to in your app, each with a unique key, and add a function to resolve that key to the content. See [Resolve keys\n to content](/guide/navigation/navigation-3/basics#resolve-keys).\n2. Create a back stack that keys are pushed onto and removed as users navigate your app. See [Create a back stack](/guide/navigation/navigation-3/basics#create-back).\n3. Use a [`NavDisplay`](/reference/kotlin/androidx/navigation3/ui/package-summary#NavDisplay(kotlin.collections.List,androidx.compose.ui.Modifier,androidx.compose.ui.Alignment,kotlin.Function1,kotlin.collections.List,androidx.navigation3.ui.SceneStrategy,androidx.compose.animation.SizeTransform,kotlin.Function1,kotlin.Function1,kotlin.Function1,kotlin.Function1)) to display your app's back stack. Whenever the back stack changes, it updates the UI to display relevant content. See [Display\n the back stack](/guide/navigation/navigation-3/basics#display-back).\n4. Modify `NavDisplay`'s [scene strategies](/guide/navigation/navigation-3/custom-layouts) as needed to support adaptive layouts and different platforms.\n\nYou can see the [full source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:navigation3/) for Navigation 3 on AOSP.\n\nImprovements upon Jetpack Navigation\n------------------------------------\n\nNavigation 3 improves upon the original Jetpack Navigation API in the following\nways:\n\n- Provides a simpler integration with Compose\n- Offers you full control of the back stack\n- Makes it possible to create layouts that can read more than one destination from the back stack at the same time, allowing them to adapt to changes in window size and other inputs.\n\nRead more about Navigation 3's principles and API design choices in [this blog\npost](https://android-developers.googleblog.com/2025/05/announcing-jetpack-navigation-3-for-compose.html).\n\nCode samples\n------------\n\nThe [recipes repository](https://github.com/android/nav3-recipes) contains examples of how to use the\nNavigation 3 building blocks to solve common navigation challenges."]]