Я пытался исправить ошибку навигации в своем приложении, но я не могу ее решить, что бы я ни пытался.Я имею в виду, я могу решить это, но это выглядит дрянно и дешево.
У меня есть 5 основных фрагментов в нижней панели навигации: A, B, C, D, E.
Каждый элемент, переходит к другому фрагменту и т. д.
Если я перейду к A -> A.1 -> A.2 -> D и затем нажму кнопку «Назад» на моем устройстве, A.1 появится иззадний стек.Есть ли способ иметь отдельные задние стеки для каждого основного фрагмента?
Я покажу вам здесь функцию, которую я использую каждый раз, когда выбираю элемент из нижней панели навигации:
public static void replaceFragment(@NonNull AppCompatActivity activity, @NonNull Fragment fragment, int resId, boolean addToBackStack) {
String backStackName = SharedPreferencesManager.getInstance().getBackStackName(activity.getBaseContext());
FragmentManager manager = activity.getSupportFragmentManager();
boolean fragmentPopped = manager.popBackStackImmediate(backStackName,0);
boolean fragmentExists = manager.findFragmentByTag(backStackName) != null;
FragmentTransaction ft;
if (!fragmentPopped && !fragmentExists) {
ft = manager.beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.replace(resId, fragment, Constants.CURRENT_FRAGMENT_TAG);
if (addToBackStack) {
ft.addToBackStack(backStackName);
}
ft.commit();
}
}
Заранее спасибо,Если есть другой фрагмент кода, который вам нужен, чтобы показать вам, пожалуйста, скажите