Как убрать первую запись в backstack - PullRequest
0 голосов
/ 15 января 2020

Я хочу удалить первую (самую старую) запись из backstack, когда количество записей в стеке больше 3. Я пробовал что-то вроде этого

fragmentManager.addOnBackStackChangedListener(() -> {
            int backStackEntryCount = fragmentManager.getBackStackEntryCount();
            if (backStackEntryCount > 3) {
                int firstEntryId = fragmentManager.getBackStackEntryAt(0).getId();
                fragmentManager.popBackStack(firstEntryId, 0);
            }
        });

Но это не работает так, как я ожидал

Ответы [ 2 ]

0 голосов

fragmentManager.remove (fragmentManager.findFragmentById (firstEntryId)). Фиксации ()

0 голосов
/ 15 января 2020

Нет способа удалить самый старый фрагмент из backstack фрагмента. Однако есть два возможных решения: Либо каждый раз, когда вам нужно удалить самый старый фрагмент из backstack, вытолкните все фрагменты и добавьте pu sh только необходимые фрагменты. Или вы можете использовать собственный backstack. Вы найдете онлайн-учебники для пользовательской реализации backstack. Спасибо.

...