Фрагмент backstack и заменить - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть 2 фрагмента A и B.Я добавил фрагмент B из фрагмента A (A->B) с addToBackStack().Теперь, когда я нахожусь во фрагменте B и нажимаю назад, все в порядке и возвращаюсь к A.

Но когда я нахожусь во фрагменте C, я хочу отобразить фрагмент B, если это существовал в диспетчере фрагментов, проверяя getFragmentManager().findFragmentByTag("");, затем я replace этот фрагмент.

Проблема в том, что backstack не работает в этой ситуации.Я имею в виду, что всякий раз, когда я нажимаю назад, фрагмент A не отображается .Как я могу сохранить это backstack тоже?

1 Ответ

0 голосов
/ 18 февраля 2019

Это код, который я использую

FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.popBackStack(fragment.toString(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
            FragmentTransaction tx = fragmentManager.beginTransaction();

            Log.v("on calling fragment", fragment + "==" + fragment.toString());
            tx.replace(R.id.fl_main, fragment).addToBackStack(fragment.toString());

Это дает разные строки backstack для каждого заменяемого фрагмента.

...