प्रिडिक्टिव बैक ऐनिमेशन चालू करने के लिए, आपको प्रिडिक्टिव बैक जेस्चर के लिए ऑप्ट-इन करना होगा. ऑप्ट-इन करने के लिए, अपनी AndroidManifest.xml
फ़ाइल में <application>
टैग या अलग-अलग <activity>
टैग में android:enableOnBackInvokedCallback="true
" जोड़ें.
सिस्टम के डिफ़ॉल्ट ऐनिमेशन चालू करना
Android 15 और उसके बाद के वर्शन वाले डिवाइसों पर, होम स्क्रीन पर वापस जाने, एक गतिविधि से दूसरी गतिविधि पर जाने, और एक टास्क से दूसरे टास्क पर जाने के दौरान दिखने वाले सिस्टम ऐनिमेशन उपलब्ध हैं. हालांकि, ये ऐनिमेशन सिर्फ़ उन ऐप्लिकेशन के लिए उपलब्ध हैं जिन्हें बैक ट्रैवल मैनेज करने वाले एपीआई पर माइग्रेट किया गया है.
- होम पर वापस जाएं: इससे उपयोगकर्ता को होम स्क्रीन पर वापस लाया जाता है.
- एक से दूसरी ऐक्टिविटी: ऐप्लिकेशन में एक से दूसरी ऐक्टिविटी पर ट्रांज़िशन.
- एक टास्क से दूसरे टास्क पर जाना: टास्क के बीच ट्रांज़िशन.
ये ऐनिमेशन, Android 15 और उसके बाद के वर्शन पर डिफ़ॉल्ट रूप से चालू होते हैं. Android 13 या 14 वाले डिवाइसों पर, उपयोगकर्ता डेवलपर के लिए उपलब्ध विकल्प में जाकर, इन सुविधाओं को चालू कर सकते हैं.
सिस्टम ऐनिमेशन पाने के लिए, AndroidX Activity
डिपेंडेंसी को 1.6.0 या इसके बाद के वर्शन पर अपडेट करें.
नेविगेशन कंपोज की मदद से, प्रिडिक्टिव बैक की सुविधा चालू करना
नेविगेशन कंपोज में, अनुमानित वापसी का इस्तेमाल करने के लिए, पक्का करें कि आपने navigation-compose
2.8.0 लाइब्रेरी या उसके बाद के वर्शन का इस्तेमाल किया हो.
नेविगेशन कंपोज, उपयोगकर्ता के पीछे स्वाइप करने पर, स्क्रीन के बीच अपने-आप क्रॉस-फ़ेड होता है:
नेविगेट करते समय, popEnterTransition
और popExitTransition
का इस्तेमाल करके कस्टम ट्रांज़िशन बनाए जा सकते हैं. NavHost
पर लागू करने पर, इन मॉडिफ़ायर की मदद से यह तय किया जा सकता है कि स्क्रीन पर एंटर और बाहर निकलने की इफ़ेक्ट कैसे दिखे. इनका इस्तेमाल करके, कई तरह के इफ़ेक्ट बनाए जा सकते हैं. जैसे, स्केलिंग, स्लाइडिंग या फ़ेड करना.
इस उदाहरण में, scaleOut
का इस्तेमाल popExitTransition
में किया गया है, ताकि उपयोगकर्ता के वापस जाने पर, स्क्रीन को छोटा किया जा सके. इसके अलावा, 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
का इस्तेमाल करके, बैक नेविगेशन के लिए अलग-अलग ऐनिमेशन बनाए जा सकते हैं.
शेयर किए गए एलिमेंट के ट्रांज़िशन के साथ इंटिग्रेट करना
शेयर किए गए एलिमेंट के ट्रांज़िशन से, शेयर किए गए कॉन्टेंट वाले कॉम्पोनेंट्स के बीच आसानी से विज़ुअल कनेक्शन बनाया जा सकता है. आम तौर पर, इसका इस्तेमाल नेविगेशन के लिए किया जाता है.
नेविगेशन कंपोज़ के साथ शेयर किए गए एलिमेंट इस्तेमाल करने के लिए, शेयर किए गए एलिमेंट के साथ सुझाव देखें.
Material Compose कॉम्पोनेंट की मदद से, अनुमानित तौर पर वापस जाने की सुविधा
Material Compose लाइब्रेरी के कई कॉम्पोनेंट, पहले से अनुमानित बैक जेस्चर के साथ आसानी से काम करने के लिए डिज़ाइन किए गए हैं. इन कॉम्पोनेंट में, पहले से अनुमानित बैक ऐनिमेशन की सुविधा चालू करने के लिए, अपने प्रोजेक्ट में Material3 की नई डिपेंडेंसी (androidx.compose.material3:material3-*:1.3.0
या उसके बाद का वर्शन) शामिल करें.
प्रिडिक्टिव बैक ऐनिमेशन की सुविधा देने वाले Material कॉम्पोनेंट में ये शामिल हैं:
SearchBar
ModalBottomSheet
ModalDrawerSheet/DismissibleDrawerSheet
ModalNavigationDrawer/DismissibleNavigationDrawer
SearchBar
और ModalBottomSheet
, पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर के साथ अपने-आप ऐनिमेट होते हैं. ModalNavigationDrawer
,
ModalDrawerSheet
, DismissibleDrawerSheet
, और
DismissibleNavigationDrawer
के लिए, आपको अपनी शीट के कॉम्पोज़ेबल कॉन्टेंट में drawerState
को पास करना होगा.
पीछे जाने के लिए हाथ के जेस्चर के ऐनिमेशन की जांच करना
अगर अब भी Android 13 या Android 14 का इस्तेमाल किया जा रहा है, तो होम स्क्रीन पर वापस जाने के ऐनिमेशन की जांच की जा सकती है.
इस ऐनिमेशन की जांच करने के लिए, यह तरीका अपनाएं:
- अपने डिवाइस पर, सेटिंग > सिस्टम > डेवलपर के लिए सेटिंग और टूल पर जाएं.
- प्रिडिक्टिव बैक ऐनिमेशन चुनें.
- अपडेट किया गया ऐप्लिकेशन लॉन्च करें और उसे इस्तेमाल करने के लिए, 'वापस जाएं' जेस्चर का इस्तेमाल करें.
Android 15 और उसके बाद के वर्शन पर, यह सुविधा डिफ़ॉल्ट रूप से चालू रहती है.