नेविगेशन कार्रवाइयों का इस्तेमाल करके, फ़्रैगमेंट के बीच कनेक्शन बनाए जा सकते हैं. उत्तेजित करने वाला नेविगेशन कार्रवाई उपयोगकर्ता को एक गंतव्य से दूसरे गंतव्य पर ले जाती है. यह गाइड यह बताती है कि कार्रवाइयां क्या हैं और इन्हें कैसे बनाया और इस्तेमाल किया जा सकता है.
खास जानकारी
हर कार्रवाई का एक यूनीक आईडी होता है और इसमें अतिरिक्त एट्रिब्यूट भी शामिल हो सकते हैं, जैसे कि गंतव्य. डेस्टिनेशन, उस स्क्रीन के बारे में बताती है जहां ऐप्लिकेशन, उपयोगकर्ता को ले जाता है वे कार्रवाई को ट्रिगर करते हैं. यह कार्रवाई, डेटा ले जाने के लिए आर्ग्युमेंट का भी इस्तेमाल कर सकती है एक मंज़िल से दूसरी मंज़िल पर जाने में.
- सुरक्षित आर्ग: कार्रवाइयों का इस्तेमाल करके, संसाधन आईडी को सुरक्षित आर्ग से बदला जा सकता है Args से जनरेट की गई कार्रवाइयां, जो कंपाइल-टाइम की अतिरिक्त सुरक्षा देती हैं.
- ऐनिमेशन: इससे डेस्टिनेशन के बीच ट्रांज़िशन को भी ऐनिमेट किया जा सकता है. ज़्यादा जानकारी के लिए, डेस्टिनेशन के बीच ट्रांज़िशन को ऐनिमेट करें देखें.
उदाहरण
<action>
टैग का इस्तेमाल करके, अपने नेविगेशन ग्राफ़ की एक्सएमएल फ़ाइल में कार्रवाइयां तय करें. कॉन्टेंट बनाने
निम्न स्निपेट एक ऐसी कार्रवाई लागू करता है, जो
FragmentB
के लिए FragmentA
.
<fragment
android:id="@+id/fragmentA"
android:name="com.example.FragmentA">
<action
android:id="@+id/action_fragmentA_to_fragmentB"
app:destination="@id/fragmentB" />
</fragment>
कार्रवाई का इस्तेमाल करके नेविगेट करें
इस कार्रवाई का इस्तेमाल करके नेविगेट करने के लिए, NavController.navigate()
को कॉल करें और
इसे id
:
navController.navigate(R.id.action_fragmentA_to_fragmentB)
ग्लोबल कार्रवाइयां
ग्लोबल ऐक्शन का इस्तेमाल करके, कहीं से भी डेस्टिनेशन पर जाया जा सकता है.
आपके ऐप्लिकेशन में मौजूद ऐसे किसी भी डेस्टिनेशन के लिए जिसे एक से ज़्यादा पाथ से ऐक्सेस किया जा सकता है, संबंधित ग्लोबल ऐक्शन को परिभाषित करें, जो गंतव्य.
यह उदाहरण देखें. results_winner
और game_over
डेस्टिनेशन, दोनों को होम डेस्टिनेशन पर पॉप-अप होना चाहिए. कॉन्टेंट बनाने
action_pop_out_of_game
कार्रवाई से ऐसा करने की सुविधा मिलती है;
action_pop_out_of_game
किसी खास फ़्रैगमेंट के बाहर की ग्लोबल कार्रवाई है.
इसका अर्थ है कि आप इसे
in_game_nav_graph
.
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/in_game_nav_graph"
app:startDestination="@id/in_game">
<!-- Action back to destination which launched into this in_game_nav_graph -->
<action android:id="@+id/action_pop_out_of_game"
app:popUpTo="@id/in_game_nav_graph"
app:popUpToInclusive="true" />
<fragment
android:id="@+id/in_game"
android:name="com.example.android.gamemodule.InGame"
android:label="Game">
<action
android:id="@+id/action_in_game_to_resultsWinner"
app:destination="@id/results_winner" />
<action
android:id="@+id/action_in_game_to_gameOver"
app:destination="@id/game_over" />
</fragment>
<fragment
android:id="@+id/results_winner"
android:name="com.example.android.gamemodule.ResultsWinner" />
<fragment
android:id="@+id/game_over"
android:name="com.example.android.gamemodule.GameOver"
android:label="fragment_game_over"
tools:layout="@layout/fragment_game_over" />
</navigation>