2015-10-08 1 views
0

Я пытаюсь очистить заднюю часть, когда открываю один конкретный фрагмент. Предположим, что у меня есть 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); 

но он не работает.

+0

вы можете обратиться к http://stackoverflow.com/questions/31737013/how-to-clear-the-fragment-stack-and-activity-stack-on-a-button-click one. Я дал тот же ответ. –

+0

ваш способ дает тот же результат. – alex

ответ

0

Перед тем, как открыть какой-либо фрагмент, вы можете очистить только назад, только в действии.

Смежные вопросы