Я хочу реализовать простой поток фрагментов, но с несколькими бэк-стеками, используя компонент навигации
В основной деятельности у меня есть просмотрщик с вкладками внизу, нажимающими на вкладкиили скольжение на панели просмотра слайдов к следующему или предыдущему фрагменту
То, что я до сих пор делал, это
1 - создавал несколько навигационных графов, я думал, что так мы сделаем несколько обратных стеков
nav-graph-1 nav-graph-2 ..
2 - в моем окне просмотра я создаю подобные фрагменты
public Fragment getItem(int position) {
if (position == 0)
return NavHostFragment.create(R.navigation.navigation_all_news);
else if (position == 1)
return NavHostFragment.create(R.navigation.navigation_my_news);
else if (position == 2)
return NavHostFragment.create(R.navigation.navigation_search);
else if (position == 3)
return NavHostFragment.create(R.navigation.navigation_forum);
else
return NavHostFragment.create(R.navigation.navigation_settings);
}
3 - я обработал спины в моих фрагментах, как это
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
navController = findNavController(this);
OnBackPressedCallback callback = new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
navController.navigateUp();
**//or navController.popBackStack()
//Both have same effect :/**
}
};
requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);
}
4, если при переходе
из первого элемента viewpager (фрагмент1) до (фрагмент1.1) и нажмите назад, (фрагмент1.1) выскочит
НО
если я пойду
(фрагмент1) до (фрагмент1.1)
слайд просмотрщик (FRAGMENT2) (фрагмент2.1)
или наоборот
теперь в backStack есть 3 фрагмента (фрагмент2.1) и (фрагмент1.1)оба включены
я делаю что-то не так или это просто не работает с несколькими навигационными графами и навигационной аркой?