التنقّل باستخدام ميزة الإنشاء في نظام التشغيل Wear OS

يوفّر مكوّن التنقّل في Android Jetpack دعمًا لتطبيقات Jetpack Compose. يمكنك التنقل بين العناصر القابلة مع الاستفادة من البنية الأساسية وميزات مكون التنقل.

توضّح هذه الصفحة الاختلافات في ميزات التنقّل في Jetpack على Compose for Wear OS.

ضبط إعدادات

استخدِم التبعية التالية في ملف Build.gradele لوحدة تطبيقك:

Kotlin


dependencies {
    def wear_compose_version = "1.3.1"
    implementation "androidx.wear.compose:compose-navigation:$wear_compose_version"
}

تُستخدَم هذه الوظيفة بدلاً من الأداة androidx.navigation:navigation-compose لأنّها توفّر عمليات تنفيذ بديلة خاصة بنظام التشغيل Wear OS.

إنشاء وحدة تحكّم في التنقّل ومضيف ورسم بياني

لاستخدام ميزة "الكتابة" على نظام التشغيل Wear OS، يجب استخدام المكوّنات الثلاثة نفسها المطلوبة في التطبيقات غير المتوافقة مع نظام التشغيل Wear OS، وهي: وحدة التحكّم في التنقّل والمضيف والرسم البياني.

يمكنك استخدام rememberSwipeDismissableNavController() لإنشاء مثيل WearNavigator، وهو تنفيذ NavController مناسب لتطبيقات Wear OS:

Kotlin


val navController = rememberSwipeDismissableNavController()

NavController هي واجهة برمجة التطبيقات الأساسية المستخدمة للتنقّل في تطبيقات Compose. فهو يتحكّم في التنقّل بين العناصر المكونة في مضيف التنقّل الذي يكون SwipeDismissableNavHost على نظام التشغيل Wear OS.

Kotlin

val navController = rememberSwipeDismissableNavController()
SwipeDismissableNavHost(
    navController = navController,
    startDestination = "message_list"
) {
    // TODO: build navigation graph
}

مثل NavHost القابلة للإنشاء، فهي تشير إلى وحدة التحكّم في التنقّل، ومسار وجهة البداية، وأداة إنشاء الرسم البياني للتنقل الذي يظهر هنا على شكل لامدا لاحقة.

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

Kotlin

val navController = rememberSwipeDismissableNavController()
SwipeDismissableNavHost(
    navController = navController,
    startDestination = "message_list"
) {
    composable("message_list") {
        MessageList(onMessageClick = { id ->
            navController.navigate("message_detail/$id")
        })
    }
    composable("message_detail/{id}") {
        MessageDetail(id = it.arguments?.getString("id")!!)
    }
}

للتعرّف على مزيد من المعلومات حول Jetpack Compose، يُرجى الاطّلاع على القسم الانتقال باستخدام Compose أو المشاركة في الميزة الاختبارية حول رموز التنقل في Jetpack Compose.