Wear OS के लिए, लिखने की सुविधा का इस्तेमाल करके नेविगेशन

Android Jetpack में नेविगेशन कॉम्पोनेंट यह Jetpack Compose ऐप्लिकेशन पर काम करती है. अलग-अलग कंपोज़ेबल के बीच नेविगेट किया जा सकता है नेविगेशन कॉम्पोनेंट के इन्फ़्रास्ट्रक्चर का इस्तेमाल किया जा सकता है और सुविधाएँ.

इस पेज पर बताया गया है कि Wear के लिए Compose में Jetpack नेविगेशन मोड के बीच क्या अंतर है ओएस.

सेटअप

अपने ऐप्लिकेशन मॉड्यूल की Build.gradle फ़ाइल में, इस डिपेंडेंसी का इस्तेमाल करें:

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 ऐप्लिकेशन में नेविगेट करने के लिए इस्तेमाल किया जाने वाला मुख्य एपीआई होता है. यह नेविगेशन कंट्रोल करता है नेविगेशन होस्ट में कंपोज़ेबल, जो Wear OS पर मौजूद हैं SwipeDismissableNavHost.

Kotlin

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

पसंद करें NavHost कंपोज़ेबल, यह नेविगेशन कंट्रोलर का रेफ़रंस लेता है, यानी शुरुआती चरण के लिए रूट गंतव्य है और नेविगेशन ग्राफ़ का बिल्डर है, जिसे यहां पीछे Lambda फ़ंक्शन.

शुरुआती डेस्टिनेशन, नेविगेशन ग्राफ़ बिल्डर में दिया जाना चाहिए. साथ ही, यह भी ज़रूरी है कि उन सभी डेस्टिनेशन के साथ जो नेविगेशन की मदद से नेविगेट किए जा सकते हों कंट्रोलर.

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")!!)
    }
}

जेटपैक नेविगेशन के बारे में ज़्यादा जानने के लिए, यह देखें Compose की मदद से नेविगेट करना या Jetpack Compose के लिए नेविगेशन कोड लैब.