0Pricing
Android Academy · درس

التنقّل بين الشاشات

انتقل إلى الوجهات وإلى الخلف بينها

التنقّل بين الشاشات درس مجاني في Android Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Android Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Android Academy 4 دروس في المجموع.

المضي قدمًا

بعد إعداد NavHost، يمكنكم الانتقال إلى شاشة أخرى باستدعاء navigate على NavController مع تحديد المسار المستهدف.

navController.navigate("details")

التشغيل من زر

يحدث التنقّل عادةً داخل دالة استدعاء، مثل onClick الخاص بزر.

Button(onClick = { navController.navigate("details") }) {
    Text("Open details")
}

مكدس الرجوع

يضيف كل استدعاء لـ navigate الوجهة الجديدة إلى مكدس الرجوع. ويزيل زر الرجوع في النظام هذه الوجهة تلقائيًا، ما يعيدكم إلى الشاشة السابقة.

popBackStack

للرجوع برمجيًا، مثلًا من زر مخصص باسم "Up"، استدعوا popBackStack. فهذا يزيل الوجهة الحالية ويعيدكم إلى الوجهة السابقة.

navController.popBackStack()

navigateUp

يشبه navigateUp() ذلك، وهو الخيار المناسب لسهم Up في شريط الأدوات. إذ يراعي التسلسل الهرمي للتنقّل.

navController.navigateUp()

تجنّب الوجهات المكررة

قد يؤدي النقر على زر مرتين بسرعة إلى إضافة الشاشة نفسها مرتين. استخدموا launchSingleTop = true لتجنّب تكديس نسخ مكررة من الوجهة.

navController.navigate("details") {
    launchSingleTop = true
}

popUpTo

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

navController.navigate("home") {
    popUpTo("login") { inclusive = true }
}

inclusive

تعني inclusive = true أن هدف popUpTo يُزال أيضًا. أما مع inclusive = false، فيتوقف الإزالة عند الوجهة التي تسبقه مباشرةً.

الحفاظ على استقلالية الشاشات

بدلًا من تمرير NavController بأكمله إلى كل شاشة، مرّروا دوالًا لامدا. تستدعي الشاشة onOpenDetails() ولا تحتاج إلى معرفة تفاصيل التنقّل الداخلية.

@Composable
fun HomeScreen(onOpenDetails: () -> Unit) {
    Button(onClick = onOpenDetails) { Text("Details") }
}

توصيل دالة لامدا

يربط NavHost دالة لامدا باستدعاء تنقّل فعلي، ما يحافظ على منطق التنقّل في مكان واحد.

composable("home") {
    HomeScreen(onOpenDetails = {
        navController.navigate("details")
    })
}

تجميع الأجزاء

تنتقل الشاشة الرئيسية إلى شاشة التفاصيل، ثم تعود شاشة التفاصيل باستخدام سهم Up.

composable("home") {
    HomeScreen(onOpenDetails = { navController.navigate("details") })
}
composable("details") {
    DetailsScreen(onBack = { navController.popBackStack() })
}

تحقّق سريع

ما الاستدعاء الذي يعيد المستخدم برمجيًا إلى الشاشة السابقة؟

مراجعة

التنقّل:

  • يضيف navigate("route") وجهةً إلى المكدس.
  • ينفّذ popBackStack() / navigateUp() الرجوع.
  • استخدموا launchSingleTop وpopUpTo { inclusive } للتحكّم في المكدس.
  • مرّروا دوال لامدا بدلًا من وحدة التحكّم للحفاظ على قابلية إعادة استخدام الشاشات.

الأسئلة الشائعة

هل درس «التنقّل بين الشاشات» مجاني؟

نعم — نص درس «التنقّل بين الشاشات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Android Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Android Academy 4 دروس في المجموع.

ماذا ستتعلم في «التنقّل بين الشاشات»؟

انتقل إلى الوجهات وإلى الخلف بينها تتمرن على Android Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Android Academy؟

لا تُشترط خبرة سابقة. Android Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «التنقّل بين الشاشات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Android Academy هذا؟

نعم. كل درس في Android Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إعداد NavHost
  2. التنقّل بين الشاشات
  3. تمرير الوسائط
  4. التنقّل السفلي
← العودة إلى Android Academy