पीछे जाने पर झलक दिखाने वाला हाथ का जेस्चर और सिस्टम ऐनिमेशन की सुविधा, डिफ़ॉल्ट रूप से चालू होती है. अगर आपका ऐप्लिकेशन, बैक इवेंट को इंटरसेप्ट करता है और आपने पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर पर माइग्रेट नहीं किया है, तो पीछे जाने की प्रोसेस के लिए उपलब्ध एपीआई का इस्तेमाल करने के लिए, अपने ऐप्लिकेशन को अपडेट करें.
सिस्टम के डिफ़ॉल्ट ऐनिमेशन चालू करना
होम पेज पर वापस जाने, ऐप्लिकेशन में मौजूद अलग-अलग गतिविधि देखने, और अलग-अलग ऐप्लिकेशन पर काम करने से जुड़े सिस्टम ऐनिमेशन, Android 15 और इसके बाद के वर्शन वाले डिवाइसों पर उपलब्ध हैं. ये ऐनिमेशन, उन ऐप्लिकेशन के लिए उपलब्ध हैं जिन्होंने पीछे जाने की सुविधा के लिए काम करने वाले एपीआई पर माइग्रेट किया है.
- होम स्क्रीन पर वापस जाएं: इससे उपयोगकर्ता को होम स्क्रीन पर वापस ले जाया जाता है.
- क्रॉस-ऐक्टिविटी: ऐप्लिकेशन में एक ऐक्टिविटी से दूसरी ऐक्टिविटी पर ट्रांज़िशन.
- अलग-अलग काम: टास्क के बीच ट्रांज़िशन.
ये ऐनिमेशन, Android 15 और इसके बाद के वर्शन पर डिफ़ॉल्ट रूप से चालू होते हैं. Android 13 या 14 पर काम करने वाले डिवाइसों पर, लोग इन्हें डेवलपर के लिए बनी सेटिंग और टूल के ज़रिए चालू कर सकते हैं.
सिस्टम ऐनिमेशन पाने के लिए, AndroidX Activity डिपेंडेंसी को 1.6.0 या इसके बाद के वर्शन पर अपडेट करें.
Navigation Compose के साथ पीछे जाने पर झलक दिखाने वाला हाथ का जेस्चर की सुविधा चालू करना
Navigation Compose में पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर के ऐनिमेशन की सुविधा का इस्तेमाल करने के लिए, पक्का करें कि navigation-compose 2.8.0 या इसके बाद के वर्शन वाली लाइब्रेरी का इस्तेमाल किया जा रहा हो.
जब उपयोगकर्ता वापस स्वाइप करता है, तो Navigation Compose एक स्क्रीन से दूसरी स्क्रीन पर अपने-आप क्रॉस-फ़ेड हो जाता है:
नेविगेट करते समय, popEnterTransition और popExitTransition की मदद से, अपनी पसंद के मुताबिक ट्रांज़िशन बनाए जा सकते हैं. इन मॉडिफ़ायर को NavHost पर लागू करने से, यह तय किया जा सकता है कि एंटर और एक्ज़िट स्क्रीन किस तरह से ऐनिमेट होंगी. इनका इस्तेमाल अलग-अलग इफ़ेक्ट बनाने के लिए किया जा सकता है. जैसे, स्केल करना, फ़ेड करना या स्लाइड करना.
इस उदाहरण में, popExitTransition में scaleOut का इस्तेमाल किया गया है, ताकि जब उपयोगकर्ता वापस जाए, तो मौजूदा स्क्रीन छोटी हो जाए. इसके अलावा, transformOrigin पैरामीटर उस पॉइंट को तय करता है जिसके आस-पास स्केलिंग ऐनिमेशन होता है. डिफ़ॉल्ट रूप से, यह स्क्रीन का सेंटर (0.5f, 0.5f) होता है.
इस वैल्यू में बदलाव करके, स्केलिंग को किसी दूसरे पॉइंट से शुरू किया जा सकता है.
NavHost( navController = navController, startDestination = Home, popExitTransition = { scaleOut( targetScale = 0.9f, transformOrigin = TransformOrigin(pivotFractionX = 0.5f, pivotFractionY = 0.5f) ) }, popEnterTransition = { EnterTransition.None }, modifier = modifier, )
इस कोड से यह नतीजा मिलता है:
popEnterTransition और popExitTransition, खास तौर पर बैक स्टैक को पॉप करते समय ऐनिमेशन को कंट्रोल करते हैं. जैसे, पीछे जाने के हाथ के जेस्चर का इस्तेमाल करते समय. enterTransition और exitTransition का इस्तेमाल, सिर्फ़ पीछे जाने पर झलक दिखाने वाला हाथ का जेस्चर के लिए नहीं, बल्कि सामान्य तौर पर कंपोज़ेबल में एंट्री और एग्ज़िट के लिए ऐनिमेशन तय करने के लिए भी किया जा सकता है. अगर आपने सिर्फ़ enterTransition और exitTransition सेट किए हैं, तो इनका इस्तेमाल सामान्य नेविगेशन और पिछली गतिविधियों को मैनेज करने, दोनों के लिए किया जाता है. हालांकि, popEnterTransition और popExitTransition का इस्तेमाल करके, बैक नेविगेशन के लिए अलग-अलग ऐनिमेशन बनाए जा सकते हैं.
शेयर किए गए एलिमेंट के ट्रांज़िशन के साथ इंटिग्रेट करना
शेयर किए गए एलिमेंट के ट्रांज़िशन, शेयर किए गए कॉन्टेंट वाले कंपोज़ेबल के बीच एक स्मूद विज़ुअल कनेक्शन उपलब्ध कराते हैं. इनका इस्तेमाल अक्सर नेविगेशन के लिए किया जाता है.
Navigation Compose के साथ शेयर किए गए एलिमेंट इस्तेमाल करने के लिए, शेयर किए गए एलिमेंट के साथ पीछे जाने पर झलक दिखाने वाला हाथ का जेस्चर लेख पढ़ें.
Material Compose कॉम्पोनेंट के साथ, पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर की सुविधा जोड़ी गई
Material Compose लाइब्रेरी में मौजूद कई कॉम्पोनेंट को, पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर के साथ आसानी से काम करने के लिए डिज़ाइन किया गया है. इन कॉम्पोनेंट में, पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर के ऐनिमेशन की सुविधा चालू करने के लिए, अपने प्रोजेक्ट में Material3 की नई डिपेंडेंसी (androidx.compose.material3:material3-*:1.3.0 या इसके बाद का वर्शन) शामिल करें.
पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर की सुविधा देने वाले मटीरियल कॉम्पोनेंट में ये शामिल हैं:
SearchBarModalBottomSheetModalDrawerSheet/DismissibleDrawerSheetModalNavigationDrawer/DismissibleNavigationDrawer
SearchBar और ModalBottomSheet, पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर के साथ अपने-आप ऐनिमेट होते हैं. ModalNavigationDrawer, ModalDrawerSheet, DismissibleDrawerSheet, और DismissibleNavigationDrawer के लिए, आपको drawerState को उनके शीट कॉन्टेंट कंपोज़ेबल में पास करना होगा.
प्रिडिक्टिव बैक जेस्चर ऐनिमेशन की जांच करना
अगर अब भी Android 13 या Android 14 का इस्तेमाल किया जा रहा है, तो होम स्क्रीन पर वापस जाने वाले ऐनिमेशन को टेस्ट किया जा सकता है.
इस ऐनिमेशन को टेस्ट करने के लिए, यह तरीका अपनाएं:
- अपने डिवाइस पर, सेटिंग > सिस्टम > डेवलपर के लिए सेटिंग और टूल पर जाएं.
- पीछे जाने पर झलक दिखाने वाला हाथ का जेस्चर ऐनिमेशन चुनें.
- अपडेट किया गया ऐप्लिकेशन लॉन्च करें और इसे आज़माने के लिए, वापस जाने वाले जेस्चर का इस्तेमाल करें.
Android 15 और इसके बाद के वर्शन पर, यह सुविधा डिफ़ॉल्ट रूप से चालू रहती है.
अन्य संसाधन
- पीछे जाने पर झलक दिखाने वाला हाथ का जेस्चर ऐनिमेशन जोड़ने के बारे में कोडलैब
- Compose वीडियो में लेआउट के बेहतर ऐनिमेशन