আপনি নেভিগেশন কর্ম ব্যবহার করে টুকরা মধ্যে সংযোগ তৈরি করতে পারেন. একটি নেভিগেশন অ্যাকশন উদ্দীপনা ব্যবহারকারীকে এক গন্তব্য থেকে অন্য গন্তব্যে নিয়ে যায়। এই নির্দেশিকা ব্যাখ্যা করে যে ক্রিয়াগুলি কী এবং আপনি কীভাবে সেগুলি তৈরি এবং ব্যবহার করতে পারেন তা প্রদর্শন করে৷
ওভারভিউ
প্রতিটি অ্যাকশনের একটি অনন্য আইডি থাকে এবং এতে গন্তব্যের মতো অতিরিক্ত বৈশিষ্ট্য থাকতে পারে। গন্তব্যটি স্ক্রীনকে সংজ্ঞায়িত করে যেখানে অ্যাপটি ব্যবহারকারীকে নিয়ে যায় যখন তারা অ্যাকশনটি ট্রিগার করে। ক্রিয়াটি এক গন্তব্য থেকে অন্য গন্তব্যে ডেটা বহন করতে আর্গুমেন্ট ব্যবহার করতে পারে।
- সেফ আর্গস: অ্যাকশন ব্যবহার করে, আপনি রিসোর্স আইডিগুলিকে সেফ আর্গস-জেনারেটেড অপারেশন দিয়ে প্রতিস্থাপন করতে পারেন, অতিরিক্ত কম্পাইল-টাইম নিরাপত্তা প্রদান করে।
- অ্যানিমেশন: আপনি গন্তব্যগুলির মধ্যে পরিবর্তনগুলিও অ্যানিমেট করতে পারেন। আরও তথ্যের জন্য, গন্তব্যগুলির মধ্যে অ্যানিমেট রূপান্তর দেখুন।
উদাহরণ
<action> ট্যাগ ব্যবহার করে আপনার নেভিগেশন গ্রাফ XML ফাইলে অ্যাকশন সংজ্ঞায়িত করুন। নিম্নলিখিত স্নিপেটটি একটি ক্রিয়া প্রয়োগ করে যা FragmentA থেকে FragmentB -তে রূপান্তরের প্রতিনিধিত্ব করে।
<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>