ব্যবহারকারী আপনার অ্যাপে নেভিগেট করার সময় ব্যাক স্ট্যাক বজায় রাখতে নেভিগেশন কম্পোনেন্ট অ্যান্ড্রয়েড অপারেটিং সিস্টেমের সাথে কাজ করে। কিছু ক্ষেত্রে, একই সময়ে একাধিক ব্যাক স্ট্যাক বজায় রাখা সহায়ক হতে পারে, ব্যবহারকারী তাদের মধ্যে পিছনে পিছনে চলে যায়। উদাহরণস্বরূপ, যদি আপনার অ্যাপে নীচের নেভিগেশন বা একটি নেভিগেশন ড্রয়ার অন্তর্ভুক্ত থাকে, তবে একাধিক ব্যাক স্ট্যাক সমর্থন আপনার ব্যবহারকারীদের তাদের কোনোটিতে তাদের স্থান না হারিয়ে আপনার অ্যাপের ফ্লোগুলির মধ্যে অবাধে স্যুইচ করতে দেয়।
নেভিগেশন কম্পোনেন্ট API প্রদান করে যা আপনার নেভিগেশন গ্রাফে গন্তব্যের অবস্থা সংরক্ষণ এবং পুনরুদ্ধার করে একাধিক ব্যাক স্ট্যাক সমর্থন করে। NavigationUI
ক্লাসে এমন পদ্ধতিগুলি অন্তর্ভুক্ত রয়েছে যা এটি স্বয়ংক্রিয়ভাবে পরিচালনা করে, তবে আপনি আরও কাস্টমাইজড বাস্তবায়নের জন্য অন্তর্নিহিত APIগুলি ম্যানুয়ালি ব্যবহার করতে পারেন।
নেভিগেশনইউআই-এর সাথে স্বয়ংক্রিয়ভাবে সমর্থন প্রয়োগ করুন
NavigationUI
ক্লাসে এমন API গুলি অন্তর্ভুক্ত রয়েছে যা ব্যবহারকারীর মধ্যে চলে যাওয়ার সাথে সাথে মেনু আইটেমগুলির অবস্থা স্বয়ংক্রিয়ভাবে সংরক্ষণ এবং পুনরুদ্ধার করে। এই APIগুলি নিম্নলিখিত ক্ষেত্রে ডিফল্টরূপে একাধিক ব্যাক স্ট্যাক সমর্থন বাস্তবায়ন করে:
- যখন আপনি একটি
NavigationView
বাBottomNavigationView
এর একটি ন্যাভিগেশন ইনস্ট্যান্সকে একটিNavController
দৃষ্টান্তের সাথে যুক্ত করতেsetupWithNavController()
এর উপযুক্ত ওভারলোড ব্যবহার করেন, যেমন একটি নেভিগেশন ড্রয়ার বা বটম নেভিগেশন যোগ করুন। - যখন আপনি একটি কাস্টম নেভিগেশন মেনু UI তৈরি করতে
onNavDestinationSelected()
ব্যবহার করেন একটিNavController
দৃষ্টান্ত দ্বারা হোস্ট করা গন্তব্যগুলির সাথে সংযুক্ত৷
একাধিক ব্যাক স্ট্যাক সমর্থন বাস্তবায়নের জন্য এই APIগুলির আর কোনও কোড পরিবর্তনের প্রয়োজন নেই এবং এটি আপনার অ্যাপে একাধিক ব্যাক স্ট্যাক সমর্থন করার প্রস্তাবিত উপায়।
অন্তর্নিহিত API-এর সাথে ম্যানুয়ালি সমর্থন প্রয়োগ করুন
যদি NavigationUI
দ্বারা প্রদত্ত উপাদানগুলি আপনার প্রয়োজনীয়তাগুলিকে সন্তুষ্ট না করে, তাহলে আপনি নেভিগেশন উপাদান দ্বারা প্রদত্ত অন্যান্য API পৃষ্ঠগুলির মধ্যে একটির মাধ্যমে ব্যাক স্ট্যাকগুলি সংরক্ষণ এবং পুনরুদ্ধার করার জন্য অন্তর্নিহিত APIগুলি ব্যবহার করতে পারেন৷
নেভিগেশন এক্সএমএল
ন্যাভিগেশন XML-এ, আপনার নেভিগেশন গ্রাফের <action>
উপাদানগুলি app:popUpToSaveState
ব্যবহার করে যে কোনো গন্তব্যের অবস্থা সংরক্ষণ করতে app:popUpTo
অ্যাট্রিবিউট ব্যবহার করতে পারে। app:destination
বৈশিষ্ট্যে সংজ্ঞায়িত গন্তব্যের জন্য পূর্বে সংরক্ষিত কোনো অবস্থা পুনরুদ্ধার করতে তারা app:restoreState
অ্যাট্রিবিউট ব্যবহার করতে পারে।
আপনি একাধিক ব্যাক স্ট্যাক সমর্থন করতে এই বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন। যখন একটি নেভিগেশন অ্যাকশনের জন্য ব্যবহারকারীকে একটি ব্যাক স্ট্যাক থেকে অন্যটিতে সরানোর প্রয়োজন হয়, তখন সংশ্লিষ্ট <action>
এলিমেন্টে app:popUpToSaveState
এবং app:restoreState
উভয়কেই true
সেট করুন। এইভাবে, অ্যাকশনটি বর্তমান ব্যাক স্ট্যাকের অবস্থা সংরক্ষণ করে এবং গন্তব্য ব্যাক স্ট্যাকের পূর্বে সংরক্ষিত অবস্থা পুনরুদ্ধার করে, যদি এটি বিদ্যমান থাকে।
নিম্নলিখিত উদাহরণটি এমন একটি ক্রিয়া দেখায় যা এই উভয় বৈশিষ্ট্য ব্যবহার করে:
<action
android:id=”@+id/swap_stack”
app:destination=”@id/second_stack”
app:restoreState=”true”
app:popUpTo=”@id/first_stack_start_destination”
app:popUpToSaveState=”true” />
NavOptions
NavOptions
ক্লাস আপনাকে একটি NavController
ব্যবহার করে নেভিগেট করার সময় ব্যাক স্ট্যাকগুলি সংরক্ষণ এবং পুনরুদ্ধার করতে বিশেষ নেভিগেশন বিকল্পগুলি পাস করতে দেয়৷ আপনি কোটলিন ডিএসএল ব্যবহার করে বা NavOptions.Builder
ব্যবহার করে আপনার NavOptions
এর উদাহরণ তৈরি করুন না কেন এটি সত্য:
কোটলিন
// Use the navigate() method that takes a navOptions DSL Builder navController.navigate(selectedBottomNavRoute) { launchSingleTop = true restoreState = true popUpTo(navController.graph.findStartDestination().id) { saveState = true } }
জাভা
NavOptions navOptions = new NavOptions.Builder() .setLaunchSingleTop(true) .setRestoreState(true) .setPopUpTo(NavGraph.findStartDestination(navController.getGraph()).getId(), false, // inclusive true) // saveState .build(); navController.navigate(selectedBottomNavId, null, navOptions);
নেভিগেশন বিকল্পগুলি পাস করার বিষয়ে আরও জানতে, প্রোগ্রাম্যাটিকভাবে NavOptions প্রয়োগ করুন দেখুন।
অতিরিক্ত সম্পদ
নেভিগেশন উপাদানের সাথে একাধিক ব্যাক স্ট্যাক সমর্থন সম্পর্কে আরও জানতে, নিম্নলিখিত অতিরিক্ত সংস্থানগুলি দেখুন:
ব্লগ পোস্ট
নমুনা
- এখন GitHub-এ অ্যান্ড্রয়েড অ্যাপে
- GitHub-এ জেটনিউজ
- GitHub-এ জেটস্ন্যাক