नेविगेशन कॉम्पोनेंट से आपको प्रॉपर्टी और व्यू ऐनिमेशन, दोनों को कार्रवाइयां. अपने ऐनिमेशन बनाने के लिए, यहां जाएं ऐनिमेशन के संसाधन.
आपके लिए नेविगेशन में कई डिफ़ॉल्ट ऐनिमेशन भी शामिल हैं. जोड़ने के लिए ऐनिमेशन का इस्तेमाल करके, ये काम करें:
- नेविगेशन एडिटर में, उस कार्रवाई पर क्लिक करें जहां ऐनिमेशन को होता है.
- एट्रिब्यूट पैनल के ऐनिमेशन सेक्शन में, ड्रॉपडाउन पर क्लिक करें
तीर के निशान पर क्लिक करें. इनमें से कोई एक विकल्प चुना जा सकता है
निम्न प्रकार:
- गंतव्य दर्ज करना
- गंतव्य से बाहर निकलना
- गंतव्य के माध्यम से पॉप ऐक्शन, एक कार्रवाई यह नेविगेशन के दौरान, बैक स्टैक से अन्य डेस्टिनेशन को पॉप-अप करता है.
- पॉप ऐक्शन के ज़रिए डेस्टिनेशन से बाहर निकलना
- प्रोजेक्ट ऐनिमेशन की सूची में से कोई ऐनिमेशन चुनें.
ऐनिमेशन जोड़ने के बाद, एक्सएमएल टेक्स्ट पर टॉगल करने के लिए टेक्स्ट टैब पर क्लिक करें
व्यू. ऐनिमेशन के लिए एक्सएमएल अब संबंधित
<action>
एलिमेंट. यहां दिए गए उदाहरण में, specifyAmountFragment
confirmationAction
कार्रवाई के लिए सोर्स डेस्टिनेशन:
<fragment android:id="@+id/specifyAmountFragment" android:name="com.example.buybuddy.buybuddy.SpecifyAmountFragment" android:label="fragment_specify_amount" tools:layout="@layout/fragment_specify_amount"> <action android:id="@+id/confirmationAction" app:destination="@id/confirmationFragment" app:enterAnim="@anim/slide_in_right" app:exitAnim="@anim/slide_out_left" app:popEnterAnim="@anim/slide_in_left" app:popExitAnim="@anim/slide_out_right" /> </fragment>
डेस्टिनेशन के बीच, शेयर किए गए एलिमेंट ट्रांज़िशन जोड़ना
जब कोई व्यू दो डेस्टिनेशन के बीच शेयर किया जाता है, तो आप शेयर किए गए एलिमेंट का ट्रांज़िशन, ताकि यह तय किया जा सके कि व्यू कब ट्रांज़िशन होता है एक मंज़िल से दूसरी मंज़िल पर जाने के लिए. शेयर किए गए एलिमेंट के ट्रांज़िशन ट्रांज़िशन फ़्रेमवर्क का हिस्सा हैं.
शेयर किए गए एलिमेंट की सप्लाई आपके
नेविगेशन एक्सएमएल फ़ाइल. ऐक्टिविटी और फ़्रैगमेंट डेस्टिनेशन, हर एक में एक सब-क्लास होता है
Navigator.Extras
में से
ऐसा इंटरफ़ेस जो नेविगेशन के लिए कई अन्य विकल्प स्वीकार करता है. इसमें शेयर किया गया इंटरफ़ेस भी शामिल है
एलिमेंट. कॉल करते समय, इन Extras
को पास किया जा सकता है
navigate()
.
शेयर किए गए एलिमेंट का ट्रांज़िशन, फ़्रैगमेंट डेस्टिनेशन पर हो जाता है
FragmentNavigator.Extras
क्लास की मदद से, शेयर किए गए एलिमेंट को एक डेस्टिनेशन से अगले डेस्टिनेशन पर मैप किया जा सकता है
उनके ट्रांज़िशन नाम से, जैसा कि इस्तेमाल किया जा सकता है
FragmentTransaction.addSharedElement()
.
इसके बाद, अतिरिक्त जानकारी को navigate()
को पास किया जा सकता है, जैसा कि यहां दिखाया गया है
उदाहरण:
Kotlin
val extras = FragmentNavigatorExtras(view1 to "hero_image") view.findNavController().navigate( R.id.confirmationAction, null, // Bundle of args null, // NavOptions extras)
Java
FragmentNavigator.Extras extras = new FragmentNavigator.Extras.Builder() .addSharedElement(view1, "hero_image") .build(); Navigation.findNavController(view).navigate( R.id.details, null, // Bundle of args null, // NavOptions extras);
शेयर किए गए एलिमेंट का ऐक्टिविटी डेस्टिनेशन में बदल जाता है
गतिविधियां, शेयर किए गए एलिमेंट ट्रांज़िशन को कंट्रोल करने के लिए ActivityOptionsCompat
पर निर्भर करती हैं. इसके बारे में, शेयर किए गए एलिमेंट से कोई गतिविधि शुरू करना दस्तावेज़ में बताया गया है. इसके बारे में, नीचे दिए गए उदाहरण में बताया गया है:
Kotlin
// Rename the Pair class from the Android framework to avoid a name clash import android.util.Pair as UtilPair ... val options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, UtilPair.create(view1, "hero_image")) val extras = ActivityNavigatorExtras(options) view.findNavController().navigate( R.id.details, null, // Bundle of args null, // NavOptions extras)
Java
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this, Pair.create(view1, "hero_image")); ActivityNavigatorExtras extras = new ActivityNavigatorExtras.Builder() .setActivityOptions(options) .build(); Navigation.findNavController(view).navigate( R.id.details, null, // Bundle of args null, // NavOptions extras);
गतिविधि के ट्रांज़िशन पर पॉप ऐनिमेशन लागू करना
Activity
पर या उससे नेविगेट करने पर, पॉप ऐनिमेशन लागू नहीं होते
स्वचालित रूप से. इसके बजाय, आपको कॉल करना होगा
ActivityNavigator.applyPopAnimationsToPendingTransition()
लक्ष्य Activity
गंतव्य से, जहां ऐनिमेशन होना चाहिए:
Kotlin
override fun finish() { super.finish() ActivityNavigator.applyPopAnimationsToPendingTransition(this) }
Java
@Override public void finish() { super.finish(); ActivityNavigator.applyPopAnimationsToPendingTransition(this); }