অ্যান্ড্রয়েড স্টুডিওতে একটি গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) রয়েছে, যা দিয়ে একটি নেভিগেশন গ্রাফ তৈরি ও সম্পাদনা করা যায়। এটি মূলত অন্তর্নিহিত XML রিসোর্স ফাইলের একটি এডিটর।
সংক্ষিপ্ত বিবরণ
আপনার অ্যাপে একটি XML গ্রাফ যোগ করার পরে, Android Studio নেভিগেশন এডিটর- এ গ্রাফটি খোলে। নেভিগেশন এডিটর-এ, আপনি নেভিগেশন গ্রাফগুলি দৃশ্যত সম্পাদনা করতে পারেন অথবা সরাসরি এর অন্তর্নিহিত XML সম্পাদনা করতে পারেন।

- গন্তব্য প্যানেল : গ্রাফ এডিটরে আপনার নেভিগেশন হোস্ট এবং সমস্ত গন্তব্যের তালিকা দেখায়।
- গ্রাফ এডিটর : এতে আপনার নেভিগেশন গ্রাফের একটি ভিজ্যুয়াল উপস্থাপনা থাকে। আপনি ডিজাইন ভিউ এবং টেক্সট ভিউতে থাকা অন্তর্নিহিত XML উপস্থাপনার মধ্যে পরিবর্তন করতে পারেন।
- বৈশিষ্ট্যসমূহ : নেভিগেশন গ্রাফে নির্বাচিত আইটেমটির বৈশিষ্ট্যগুলো দেখায়।
সংশ্লিষ্ট XML দেখতে টেক্সট ট্যাবে ক্লিক করুন, যা নিচের কোড স্নিপেটটির মতো দেখতে হবে:
<?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/nav_graph">
</navigation>
<navigation> এলিমেন্টটি একটি ন্যাভিগেশন গ্রাফের মূল এলিমেন্ট। আপনি যখন আপনার গ্রাফে গন্তব্য এবং সংযোগকারী অ্যাকশন যোগ করেন, তখন আপনি এখানে সংশ্লিষ্ট <destination> এবং <action> এলিমেন্টগুলিকে চাইল্ড এলিমেন্ট হিসাবে দেখতে পাবেন। যদি আপনার [নেস্টেড গ্রাফ][2] থাকে, তবে সেগুলি চাইল্ড <navigation> এলিমেন্ট হিসাবে প্রদর্শিত হয়।
গন্তব্য যোগ করুন
আপনি বিদ্যমান কোনো ফ্র্যাগমেন্ট বা অ্যাক্টিভিটি থেকে একটি ডেস্টিনেশন তৈরি করতে পারেন। এছাড়াও, আপনি নেভিগেশন এডিটর ব্যবহার করে একটি নতুন ডেস্টিনেশন তৈরি করতে পারেন অথবা এমন একটি প্লেসহোল্ডার তৈরি করতে পারেন যা পরে কোনো ফ্র্যাগমেন্ট বা অ্যাক্টিভিটি দিয়ে প্রতিস্থাপন করা যাবে।
এই উদাহরণটি দেখায় কিভাবে একটি নতুন গন্তব্য তৈরি করতে হয়। নেভিগেশন এডিটর ব্যবহার করে একটি নতুন গন্তব্য যোগ করতে, নিম্নলিখিতগুলি করুন:
- নেভিগেশন এডিটরে, নতুন গন্তব্য আইকনে ক্লিক করুন।
এবং তারপরে নতুন গন্তব্য তৈরি করুন-এ ক্লিক করুন। - প্রদর্শিত নতুন অ্যান্ড্রয়েড কম্পোনেন্ট ডায়ালগ বক্সে, আপনার ফ্র্যাগমেন্ট তৈরি করুন। ফ্র্যাগমেন্ট সম্পর্কে আরও তথ্যের জন্য, [ফ্র্যাগমেন্ট ওভারভিউ][3] দেখুন।
ন্যাভিগেশন এডিটরে ফিরে এসে লক্ষ্য করুন যে, অ্যান্ড্রয়েড স্টুডিও এই গন্তব্যটিকে গ্রাফে যুক্ত করেছে।
চিত্র 2 একটি গন্তব্য এবং একটি [স্থানধারক গন্তব্য][4] এর উদাহরণ দেখায়।

আপনার নেভিগেশন গ্রাফে গন্তব্য যোগ করার অন্যান্য উপায়ের জন্য, [অতিরিক্ত গন্তব্য][5] দেখুন।
বিদ্যমান ফ্র্যাগমেন্ট বা অ্যাক্টিভিটি থেকে একটি গন্তব্য তৈরি করুন
নেভিগেশন এডিটরে, আপনার যদি আগে থেকে কোনো গন্তব্যের ধরন থাকে যা আপনি আপনার নেভিগেশন গ্রাফে যোগ করতে চান, তাহলে নতুন গন্তব্য (New Destination) -এ ক্লিক করুন।
.
এরপরে, প্রদর্শিত ড্রপ-ডাউন থেকে সংশ্লিষ্ট গন্তব্যে ক্লিক করুন। এখন আপনি ডিজাইন ভিউতে গন্তব্যটির একটি প্রিভিউ এবং আপনার নেভিগেশন গ্রাফের টেক্সট ভিউতে সংশ্লিষ্ট XML দেখতে পাবেন।
একটি নতুন ফ্র্যাগমেন্ট গন্তব্য তৈরি করুন
নেভিগেশন এডিটর ব্যবহার করে নতুন গন্তব্যের ধরন যোগ করতে, নিম্নলিখিতগুলি করুন:
নেভিগেশন এডিটরে, নতুন গন্তব্য আইকনে ক্লিক করুন।
.এরপর, 'Create new destination'-এ ক্লিক করুন।
প্রদর্শিত হওয়া নতুন অ্যান্ড্রয়েড কম্পোনেন্ট ডায়ালগ বক্সে আপনার ফ্র্যাগমেন্টটি তৈরি করুন।
ন্যাভিগেশন এডিটরে ফিরে এসে লক্ষ্য করুন যে, অ্যান্ড্রয়েড স্টুডিও এই গন্তব্যটিকে গ্রাফে যুক্ত করেছে।
চিত্র 3-এ একটি গন্তব্য এবং একটি [স্থানধারক গন্তব্য][2]-এর উদাহরণ দেখানো হয়েছে।

একটি গন্তব্যের গঠন
গন্তব্যস্থলটি নির্বাচন করতে ক্লিক করুন, এবং অ্যাট্রিবিউটস প্যানেলে নিম্নলিখিত বৈশিষ্ট্যগুলো লক্ষ্য করুন:
- Type ফিল্ডটি নির্দেশ করে যে আপনার সোর্স কোডে গন্তব্যটি একটি ফ্র্যাগমেন্ট, অ্যাক্টিভিটি, বা অন্য কোনো কাস্টম ক্লাস হিসেবে বাস্তবায়িত হয়েছে কিনা।
- লেবেল ফিল্ডটিতে গন্তব্যের ব্যবহারকারী-পঠনযোগ্য নাম থাকে। এটি UI-তে প্রদর্শিত হতে পারে—উদাহরণস্বরূপ, যদি আপনি [
setupWithNavController()][11] ব্যবহার করে [NavGraph][10]-কে একটিToolbarসাথে সংযুক্ত করেন। এই কারণে, এই মানের জন্য রিসোর্স স্ট্রিং ব্যবহার করুন। - ID ফিল্ডটিতে গন্তব্যের আইডি থাকে, যা কোডে গন্তব্যকে নির্দেশ করতে ব্যবহৃত হয়।
- ক্লাস ড্রপ-ডাউনটি গন্তব্যের সাথে সংশ্লিষ্ট ক্লাসের নাম দেখায়। সংশ্লিষ্ট ক্লাসটিকে অন্য কোনো গন্তব্যের ধরনে পরিবর্তন করতে এই ড্রপ-ডাউনটিতে ক্লিক করুন।
আপনার নেভিগেশন গ্রাফের XML ভিউ দেখতে টেক্সট ট্যাবে ক্লিক করুন। XML-টিতে গন্তব্যের জন্য id , name , label , এবং layout অ্যাট্রিবিউটগুলো রয়েছে, যেমনটি নিচের কোড স্নিপেটে দেখানো হয়েছে:
<?xml version="1.0" encoding="utf-8"?> <navigation xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" app:startDestination="@id/blankFragment"> <fragment android:id="@+id/blankFragment" android:name="com.example.cashdog.cashdog.BlankFragment" android:label="@string/label_blank" tools:layout="@layout/fragment_blank" /> </navigation>
NavHostFragment
এছাড়াও আপনি [লেআউট এডিটর][1] ব্যবহার করে নিম্নলিখিত উপায়ে একটি অ্যাক্টিভিটিতে NavHostFragment যোগ করতে পারেন:
- আপনার প্রজেক্ট ফাইলের তালিকায়, আপনার অ্যাক্টিভিটির লেআউট XML ফাইলটিতে ডাবল-ক্লিক করে লেআউট এডিটরে খুলুন।
- প্যালেট প্যানে-এর মধ্যে, কন্টেইনার্স ক্যাটাগরিটি নির্বাচন করুন; বিকল্পভাবে, 'NavHostFragment' লিখে অনুসন্ধান করুন।
-
NavHostFragmentভিউটি আপনার অ্যাক্টিভিটিতে ড্র্যাগ করে আনুন। - প্রদর্শিত নেভিগেশন গ্রাফস ডায়ালগ বক্সে, এই
NavHostFragmentসাথে যুক্ত করার জন্য সংশ্লিষ্ট নেভিগেশন গ্রাফটি বেছে নিন এবং তারপর OK-তে ক্লিক করুন।
গন্তব্যস্থল সংযুক্ত করুন
অ্যাকশন হলো গন্তব্যস্থলগুলোর মধ্যে একটি যৌক্তিক সংযোগ। নেভিগেশন গ্রাফে অ্যাকশনগুলোকে তীরচিহ্ন (arrow) দ্বারা দেখানো হয়। অ্যাকশনগুলো সাধারণত একটি গন্তব্যস্থলকে অন্যটির সাথে সংযুক্ত করে, যদিও আপনি [গ্লোবাল অ্যাকশন][6] তৈরি করতে পারেন যা আপনাকে আপনার অ্যাপের যেকোনো জায়গা থেকে একটি নির্দিষ্ট গন্তব্যে নিয়ে যাবে।
অ্যাকশনের মাধ্যমে, ব্যবহারকারীরা আপনার অ্যাপে যে বিভিন্ন পথ অনুসরণ করতে পারে, তা আপনি তুলে ধরেন। মনে রাখবেন, গন্তব্যে পৌঁছানোর জন্য আপনাকে নেভিগেশনের কোড লিখতে হবে।
আপনি নেভিগেশন এডিটর ব্যবহার করে নিম্নলিখিত উপায়ে দুটি গন্তব্য সংযুক্ত করতে পারেন:
ডিজাইন ট্যাবে, ব্যবহারকারীরা যে গন্তব্য থেকে নেভিগেট করবে বলে আপনি চান, তার ডানদিকে পয়েন্টারটি ধরে রাখুন। গন্তব্যটির ডানদিকে একটি বৃত্ত প্রদর্শিত হবে, যেমনটি চিত্র ৪-এ দেখানো হয়েছে।

চিত্র ৪. একটি কর্ম সংযোগ বৃত্তসহ গন্তব্যস্থল ব্যবহারকারীরা যে গন্তব্যে যেতে চান, কার্সারটি তার উপর টেনে নিয়ে যান এবং ছেড়ে দিন। দুটি গন্তব্যের মধ্যে তৈরি হওয়া রেখাটি একটি ক্রিয়াকে নির্দেশ করে, যেমনটি চিত্র ৫-এ দেখানো হয়েছে।

চিত্র ৫. একটি কাজের সাথে গন্তব্যস্থল সংযুক্ত করা অ্যাকশনটি হাইলাইট করতে তীরচিহ্নে ক্লিক করুন। অ্যাট্রিবিউটস প্যানেলে নিম্নলিখিত অ্যাট্রিবিউটগুলো প্রদর্শিত হবে:
- Type ফিল্ডটিতে 'Action' রয়েছে।
- ID ফিল্ডটিতে অ্যাকশনটির আইডি থাকে।
- Destination ফিল্ডটিতে গন্তব্য ফ্র্যাগমেন্ট বা অ্যাক্টিভিটির আইডি থাকে।
XML ভিউতে যেতে টেক্সট ট্যাবে ক্লিক করুন। এখন সোর্স ডেস্টিনেশনে একটি অ্যাকশন এলিমেন্ট যুক্ত হবে। অ্যাকশনটির একটি আইডি এবং একটি ডেস্টিনেশন অ্যাট্রিবিউট থাকে, যেটিতে পরবর্তী ডেস্টিনেশনের আইডি থাকে, যেমনটি নিচের উদাহরণে দেখানো হয়েছে:
<?xml version="1.0" encoding="utf-8"?> <navigation xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" app:startDestination="@id/blankFragment"> <fragment android:id="@+id/blankFragment" android:name="com.example.cashdog.cashdog.BlankFragment" android:label="@string/label_blank" tools:layout="@layout/fragment_blank" > <action android:id="@+id/action_blankFragment_to_blankFragment2" app:destination="@id/blankFragment2" /> </fragment> <fragment android:id="@+id/blankFragment2" android:name="com.example.cashdog.cashdog.BlankFragment2" android:label="@string/label_blank_2" tools:layout="@layout/fragment_blank_fragment2" /> </navigation>
আপনার নেভিগেশন গ্রাফে, অ্যাকশনগুলো <action> এলিমেন্ট দ্বারা প্রকাশ করা হয়। ন্যূনতমপক্ষে, একটি অ্যাকশনে তার নিজস্ব আইডি এবং সেই গন্তব্যের আইডি থাকে যেখানে একজন ব্যবহারকারীকে নিয়ে যাওয়া উচিত।
স্থানধারক গন্তব্য
আপনি বাস্তবায়িত হয়নি এমন গন্তব্য বোঝাতে প্লেসহোল্ডার ব্যবহার করতে পারেন। একটি প্লেসহোল্ডার কোনো গন্তব্যের দৃশ্যমান উপস্থাপনা হিসেবে কাজ করে। নেভিগেশন এডিটরের মধ্যে, আপনি অন্য যেকোনো গন্তব্যের মতোই প্লেসহোল্ডার ব্যবহার করতে পারেন।
[1]: /studio/write/layout-editor [2]: /guide/navigation/navigation-nested-graphs [3]: /guide/components/fragments [4]: /guide/navigation/navigation-create-destinations#placeholders [5]: /guide/navigation/navigation-create-destinations [6]: /guide/navigation/navigation-global-action [10]: /reference/androidx/navigation/NavGraph [11]: /reference/androidx/navigation/ui/NavigationUI#setupWithNavController(androidx.appcompat.widget.Toolbar,%20androidx.navigation.NavController)