Android Jetpack में मौजूद नेविगेशन कॉम्पोनेंट, Jetpack Compose ऐप्लिकेशन के लिए सहायता उपलब्ध कराता है. नेविगेशन कॉम्पोनेंट के इन्फ़्रास्ट्रक्चर और सुविधाओं का फ़ायदा लेते हुए, एक से दूसरे कॉम्पोज़ेबल पर नेविगेट किया जा सकता है.
इस पेज पर, Wear OS के लिए Compose में Jetpack नेविगेशन के साथ अंतर के बारे में बताया गया है.
सेटअप
अपने ऐप्लिकेशन मॉड्यूल की build.gradle फ़ाइल में, नीचे दी गई डिपेंडेंसी का इस्तेमाल करें:
Kotlin
dependencies { def wear_compose_version = "1.4.1" implementation "androidx.wear.compose:compose-navigation:$wear_compose_version" }
इसका इस्तेमाल, androidx.navigation:navigation-compose
आर्टफ़ैक्ट के बदले किया जाता है, क्योंकि यह Wear OS के लिए खास तौर पर लागू होने वाले अन्य विकल्प उपलब्ध कराता है.
नेविगेशन कंट्रोलर, होस्ट, और ग्राफ़ बनाना
Wear OS के लिए Compose का इस्तेमाल करके नेविगेट करने के लिए, उन तीन कॉम्पोनेंट की ज़रूरत होती है जो Wear OS के अलावा अन्य ऐप्लिकेशन के लिए भी ज़रूरी होते हैं: नेविगेशन कंट्रोलर, होस्ट, और ग्राफ़.
WearNavigator
का इंस्टेंस बनाने के लिए, rememberSwipeDismissableNavController()
का इस्तेमाल करें. यह Wear OS ऐप्लिकेशन के लिए सही NavController
का एक उदाहरण है:
Kotlin
val navController = rememberSwipeDismissableNavController()
NavController
, Compose ऐप्लिकेशन में नेविगेट करने के लिए इस्तेमाल किया जाने वाला मुख्य एपीआई है. यह नेविगेशन होस्ट में, एक कॉम्पोनेंसे से दूसरे कॉम्पोनेंसे पर जाने की सुविधा को कंट्रोल करता है. Wear OS पर, यह सुविधा SwipeDismissableNavHost
है.
Kotlin
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "message_list" ) { // TODO: build navigation graph }
NavHost
कॉम्पोज़ेबल की तरह ही, यह नेविगेशन कंट्रोलर, शुरू करने के डेस्टिनेशन के रास्ते, और नेविगेशन ग्राफ़ के बिल्डर का रेफ़रंस लेता है. नेविगेशन ग्राफ़ के बिल्डर को यहां ट्रैलिंग लैम्ब्डा के तौर पर दिखाया गया है.
नेविगेशन ग्राफ़ बिल्डर में, शुरुआती डेस्टिनेशन के साथ-साथ उन सभी डेस्टिनेशन की जानकारी देनी होगी जिन पर नेविगेशन कंट्रोलर की मदद से पहुंचा जा सकता है.
अपने Wear OS ऐप्लिकेशन में, समय, स्क्रोल/पोज़िशन इंडिकेटर, और पेज इंडिकेटर जैसे टॉप-लेवल कॉम्पोनेंट के साथ काम करने के लिए,SwipeDismissableNavHost
को AppScaffold
के कॉन्टेंट के तौर पर दिखाएं.
स्क्रीन पर डिफ़ॉल्ट रूप से TimeText
ऑब्जेक्ट जोड़ने के लिए, स्क्रीन लेवल पर SwipeDismissableNavHost
के ऊपर AppScaffold
ऑब्जेक्ट और ScreenScaffold
का इस्तेमाल करें. इससे यह भी पक्का किया जा सकता है कि स्क्रीन के बीच नेविगेट करते समय, ऑब्जेक्ट सही तरीके से ऐनिमेट हो.
इसके अलावा, स्क्रोल किए जा सकने वाले कॉन्टेंट के लिए ScreenScaffold
, PositionIndicator
जोड़ता है.
AppScaffold { 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")!!) } } } } // Implementation of one of the screens in the navigation @Composable fun MessageDetail(id: String) { // .. Screen level content goes here val scrollState = rememberTransformingLazyColumnState() val padding = rememberResponsiveColumnPadding( first = ColumnItemType.BodyText ) ScreenScaffold( scrollState = scrollState, contentPadding = padding ) { // Screen content goes here
Jetpack नेविगेशन के बारे में ज़्यादा जानने के लिए, Compose का इस्तेमाल करके नेविगेट करना लेख पढ़ें या Jetpack Compose नेविगेशन कोड लैब में हिस्सा लें.
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक टेक्स्ट दिखता है
- Jetpack Navigation को Navigation Compose पर माइग्रेट करना
- Compose का इस्तेमाल करके नेविगेट करना
- लिखने की सुविधा की मदद से, एक स्क्रीन से दूसरी स्क्रीन पर जाना