ट्रांज़िशन कॉन्फ़िगर करना

ट्रांज़िशन का इस्तेमाल करके, पैनल के बीच होने वाले बदलावों के बारे में बताया जा सकता है. ट्रांज़िशन की मदद से, यह बताया जा सकता है कि किसी पैनल के दो वैरिएंट के बीच बदलाव कब और कैसे करना है. हर पैनल के लिए, ट्रांज़िशन की सूची तय की जा सकती है.

किसी एक <TaskPanel> या <DecorPanel> के कॉन्फ़िगरेशन में, एक या उससे ज़्यादा <Transition> की परिभाषाओं के लिए, <Transitions> एक्सएमएल टैग का इस्तेमाल कंटेनर के तौर पर किया जा सकता है. इस टैग का इस्तेमाल करके, ऐनिमेशन के नियमों का सेट तय किया जा सकता है. इससे यह तय किया जा सकता है कि किसी पैनल को एक अलग वैरिएंट से दूसरे वैरिएंट में कब और कैसे बदलना है.

एक्सएमएल एट्रिब्यूट

<Transitions> टैग, इन चाइल्ड <Transition> एलिमेंट के लिए डिफ़ॉर्ट वैल्यू तय कर सकता है:

एट्रिब्यूट स्थिति ब्यौरा
<defaultDuration> वैकल्पिक

मिलीसेकंड में डिफ़ॉल्ट अवधि तय करता है. यह अवधि, उन सभी चाइल्ड

<Transition> एलिमेंट पर लागू होती है जिनमें अवधि का एट्रिब्यूट साफ़ तौर पर सेट नहीं किया गया है.

जब यह एट्रिब्यूट तय नहीं किया जाता, तो सिस्टम के DEFAULT_DURATION कॉन्स्टैंट का इस्तेमाल किया जाता है. आम तौर पर, यह 300 मिलीसेकंड होता है.

defaultInterpolator वैकल्पिक

Android इंटरपोलेटर एक्सएमएल रिसॉर्स आईडी का रेफ़रंस देता है. उदाहरण के लिए, @android:anim/accelerate_decelerate_interpolator. इंटरपोलेटर का इस्तेमाल, उन सभी चाइल्ड <Transition> एलिमेंट के लिए डिफ़ॉल्ट के तौर पर किया जाता है जिनमें इंटरपोलेटर एट्रिब्यूट साफ़ तौर पर सेट नहीं किया गया है.

अगर कोई डिफ़ॉल्ट इंटरपोलेटर तय नहीं किया जाता है, तो सिस्टम आम तौर पर डिफ़ॉल्ट के तौर पर AccelerateDecelerateInterpolator इस्तेमाल करता है.

एक्सएमएल चाइल्ड एलिमेंट

<Transitions> का चाइल्ड एलिमेंट <Transition> है. यह मुख्य एलिमेंट है, जिसका इस्तेमाल PanelState वैरिएंट के बीच, ऐनिमेशन का कोई खास पाथ तय करने के लिए किया जाता है. किसी एक <Transitions> ब्लॉक में, एक से ज़्यादा <Transition> एलिमेंट नेस्ट किए जा सकते हैं.

सैंपल कोड

इस सैंपल में, fromVariant वैकल्पिक है. इसे तय न करने पर, मौजूदा वैरिएंट का इस्तेमाल किया जाता है. अगर fromVariant तय किया जाता है, तो ट्रांज़िशन का इस्तेमाल सिर्फ़ तब किया जाता है, जब सभी पैरामीटर मैच होते हैं. पैरामीटर, इवेंट और fromVariant में तय किए जाते हैं.

<Transitions defaultDuration="400"
         defaultInterpolator="@android:anim/linear_interpolator">
  <Transition fromVariant="closed_app"
              toVariant="opened_app">
    <Event id="app_opened" panel="application_panel" />
  </Transition>
</Transitions>

ट्रांज़िशन

ट्रांज़िशन से यह पता चलता है कि किसी पैनल के दो वैरिएंट के बीच, विज़ुअल स्टेट में होने वाले बदलाव को कैसे ऐनिमेट करना है. ट्रांज़िशन, किसी वैरिएंट से दूसरे वैरिएंट तक के पाथ की जानकारी देता है. इसके लिए, ट्रांज़िशन में कई तरह की जानकारी दी जाती है. जैसे, लागू किया जाने वाला ऐनिमेशन और ऐनिमेशन को ट्रिगर करने के लिए ज़रूरी इवेंट.

किसी पैनल के लिए, ट्रांज़िशन में बाउंड, विज़िबिलिटी, और अल्फ़ा जैसी प्रॉपर्टी के लिए ऐनिमेशन तय किए जा सकते हैं. अगर कोई कस्टम ऐनिमेटर तय नहीं किया जाता है, तो डिफ़ॉल्ट ऐनिमेटर का इस्तेमाल किया जाता है.

एक्सएमएल एट्रिब्यूट

<Transition> टैग, ऐनिमेशन की विशेषताओं और उन शर्तों को तय करने के लिए कई एट्रिब्यूट का इस्तेमाल करता है जिनके तहत यह ऐनिमेशन होना है.

एक्सएमएल चाइल्ड एलिमेंट

<Event> में, उस इवेंट की प्रॉपर्टी तय की जाती हैं जो ट्रांज़िशन को ट्रिगर कर सकता है.

इस इवेंट से जुड़े पैनल का यूनीक आइडेंटिफ़ायर.
एट्रिब्यूट स्थिति ब्यौरा
<id> ज़रूरी है ट्रिगर को चालू करने के लिए, इवेंट का यूनीक आइडेंटिफ़ायर.
<panelId> वैकल्पिक इवेंट से जुड़े पैनल का यूनीक आइडेंटिफ़ायर.
componentName वैकल्पिक इस इवेंट से जुड़ा कॉम्पोनेंट नेम.
packageName वैकल्पिक इवेंट से जुड़ा पैकेज नेम.

सैंपल कोड

<Transitions defaultDuration="400"
        defaultInterpolator="@android:anim/accelerate_interpolator">
  <!-- A transition from 'closed_app' to 'opened_app' variant, triggered by 'open_app_event' -->
  <Transition fromVariant="closed_app"
              toVariant="opened_app">
    <Event id="app_opened" panel="application_panel" />
  <Transition>

  <!-- A transition from 'opened_app' to 'closed_app' variant, using a custom animator -->
  <Transition fromVariant="opened_app"
              toVariant="closed_app"
              animator="@animator/close_app">
    <Event id="_System_PanelEmptyEvent"
           panelId="application_panel" />
  <Transition>
</Transitions>