नेविगेशन से जुड़ी कार्रवाइयों और फ़्रैगमेंट का इस्तेमाल करें

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

खास जानकारी

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

उदाहरण

<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>