Я пытаюсь очистить заднюю часть, когда открываю один конкретный фрагмент. Предположим, что у меня есть Fragment Foo и Fragment Bar, который я могу открыть в MainActivity. Кроме того, я могу открыть другие фрагменты из Foo или Bar. Это простая схема:Очистить framgnetBackStack при открытии определенного фрагмента
Основная деятельность - foo-> Foo1-> Foo2-> foo3
Основная деятельность - Бар-> Bar1-> Bar2-> Bar3
Кроме того, у меня есть , поэтому я могу получить доступ к Fragments Foo и Bar из любого места: ei можно получить из Foo2 или Bar3 или любого другого фрагмента. Дело в том, что я хочу СЧИТАТЬ заднюю часть, когда я вхожу в Foo или Bar после того, как этот Фрагмент был открыт.
Основная деятельность - foo-> Foo1-> Foo2-> foo3 -> Бар
(очистить backstack, поэтому назад кнопка будет закрыть приложение).
Я пытаюсь закрыть все фрагменты, делая так:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
FragmentManager fm = getActivity().getSupportFragmentManager();
for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {
fm.popBackStack();
}
}
И манипуляциях этот порядок: Основная деятельность - foo-> Foo1-> Foo2-> foo3 -> Бар. Но когда появится фрагмент Bar Fragment, я вижу Foo Fragment. Без очистки заднего фонаря все, кажется, работает нормально, за исключением того, что кнопка возврата возвращает предыдущий фрагмент Foo3. Итак, что я делаю неправильно?
Кроме того, I'v сделать очистку от:
getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
но он не работает.
вы можете обратиться к http://stackoverflow.com/questions/31737013/how-to-clear-the-fragment-stack-and-activity-stack-on-a-button-click one. Я дал тот же ответ. –
ваш способ дает тот же результат. – alex