তাদের জন্য, যারা এখনও সমর্থন লাইব্রেরি <25.3.0 ব্যবহার করেন
এটি এই প্রশ্নের সম্পূর্ণ উত্তর কিনা তা আমি নিশ্চিত নই, তবে আমার সমস্যাটি খুব অনুরূপ ছিল - আমাকে backবোতাম টিপতে প্রক্রিয়া করতে হয়েছিল এবং তিনি যেখানে ছিলেন সেখানে পূর্ববর্তী ট্যাবে উপস্থিত হতে হয়েছিল। সুতরাং, সম্ভবত আমার সমাধান কারও পক্ষে কার্যকর হবে:
private void updateNavigationBarState(int actionId){
Menu menu = bottomNavigationView.getMenu();
for (int i = 0, size = menu.size(); i < size; i++) {
MenuItem item = menu.getItem(i);
item.setChecked(item.getItemId() == actionId);
}
}
দয়া করে মনে রাখবেন যে ব্যবহারকারীরা অন্য নেভিগেশন ট্যাবটি চাপলে BottomNavigationViewবর্তমানে নির্বাচিত আইটেমটি সাফ হবে না, তাই আপনাকে onNavigationItemSelectedনেভিগেশন ক্রিয়াকলাপের প্রক্রিয়া করার পরে আপনার এই পদ্ধতিটি কল করতে হবে :
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.some_id_1:
// process action
break;
case R.id.some_id_2:
// process action
break;
...
default:
return false;
}
updateNavigationBarState(item.getItemId());
return true;
}
উদাহরণস্বরূপ রাষ্ট্রের সঞ্চয় সম্পর্কে আমি মনে করি আপনি একই action idসাথে নেভিগেশন ভিউয়ের সাথে খেলতে পারেন এবং উপযুক্ত সমাধান খুঁজে পেতে পারেন।
BottomNavigationViewকোনও রাজ্যের অভ্যন্তরীণ সঞ্চয় করে না। সম্ভবত এটি ভবিষ্যতের আপডেটে অন্তর্ভুক্ত হবে আশা করি। এখানে অনুলিপি (আরও কিছু তথ্যের সাথে): stackoverflow.com/questions/40236786/…