একাধিক ব্যাক স্ট্যাক সমর্থন

ব্যবহারকারী আপনার অ্যাপে নেভিগেট করার সময় ব্যাক স্ট্যাক বজায় রাখতে নেভিগেশন কম্পোনেন্ট অ্যান্ড্রয়েড অপারেটিং সিস্টেমের সাথে কাজ করে। কিছু ক্ষেত্রে, একই সময়ে একাধিক ব্যাক স্ট্যাক বজায় রাখা সহায়ক হতে পারে, ব্যবহারকারী তাদের মধ্যে পিছনে পিছনে চলে যায়। উদাহরণস্বরূপ, যদি আপনার অ্যাপে নীচের নেভিগেশন বা একটি নেভিগেশন ড্রয়ার অন্তর্ভুক্ত থাকে, তবে একাধিক ব্যাক স্ট্যাক সমর্থন আপনার ব্যবহারকারীদের তাদের কোনোটিতে তাদের স্থান না হারিয়ে আপনার অ্যাপের ফ্লোগুলির মধ্যে অবাধে স্যুইচ করতে দেয়।

নেভিগেশন কম্পোনেন্ট API প্রদান করে যা আপনার নেভিগেশন গ্রাফে গন্তব্যের অবস্থা সংরক্ষণ এবং পুনরুদ্ধার করে একাধিক ব্যাক স্ট্যাক সমর্থন করে। NavigationUI ক্লাসে এমন পদ্ধতিগুলি অন্তর্ভুক্ত রয়েছে যা এটি স্বয়ংক্রিয়ভাবে পরিচালনা করে, তবে আপনি আরও কাস্টমাইজড বাস্তবায়নের জন্য অন্তর্নিহিত APIগুলি ম্যানুয়ালি ব্যবহার করতে পারেন।

নেভিগেশনইউআই-এর সাথে স্বয়ংক্রিয়ভাবে সমর্থন প্রয়োগ করুন

NavigationUI ক্লাসে এমন API গুলি অন্তর্ভুক্ত রয়েছে যা ব্যবহারকারীর মধ্যে চলে যাওয়ার সাথে সাথে মেনু আইটেমগুলির অবস্থা স্বয়ংক্রিয়ভাবে সংরক্ষণ এবং পুনরুদ্ধার করে। এই APIগুলি নিম্নলিখিত ক্ষেত্রে ডিফল্টরূপে একাধিক ব্যাক স্ট্যাক সমর্থন বাস্তবায়ন করে:

একাধিক ব্যাক স্ট্যাক সমর্থন বাস্তবায়নের জন্য এই 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 ক্লাস আপনাকে একটি 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 প্রয়োগ করুন দেখুন।

অতিরিক্ত সম্পদ

নেভিগেশন উপাদানের সাথে একাধিক ব্যাক স্ট্যাক সমর্থন সম্পর্কে আরও জানতে, নিম্নলিখিত অতিরিক্ত সংস্থানগুলি দেখুন:

ব্লগ পোস্ট

নমুনা