تكرار السؤال: …
الإجابة المختصرة
ينشئ NavHost مع NavController لتوحيد الانتقالات، ويوفر Safe Args لتمرير المعاملات بأمان، ويبني مسار العودة الصحيح (Synthetic Backstack) تلقائيًا عند الدخول عبر Deep Link.
الشرح
يضمن Navigation Component التماسك التام لزر الرجوع (Up/Back Button). عند وصول المستخدم عبر رابط خارجي (Deep Link) لصفحة عميقة (مثل تفاصيل طلب معين)، يقوم المكون بإنشاء تسلسل الأنشطة والشاشات السابقة منطقيًا في الـ Backstack، بحيث إذا ضغط المستخدم رجوعًا فإنه يعود للصفحة الرئيسية للتطبيق بدلاً من إغلاقه مباشرة.
مثال بالكود
<!-- تعريف Deep Link في nav_graph.xml -->
<fragment
android:id="@+id/orderDetailFragment"
android:name="com.example.OrderDetailFragment">
<deepLink app:uri="myapp://orders/{orderId}" />
<argument
android:name="orderId"
app:argType="string" />
</fragment>أخطاء شائعة
- تمرير كائنات ضخمة بين الشاشات عبر Navigation Args بدلاً من تمرير الـ ID فقط وجلب البيانات من الـ Repository.
- كسر الـ Backstack الافتراضي باستخدام popUpTo بطريقة غير محسوبة تحذف شاشات أساسية.