Android - запретить открывать предыдущий фрагмент - PullRequest
0 голосов
/ 01 июня 2018

ребята.Это, должно быть, глупый вопрос, но мне не удается решить это.Мой сценарий таков: у меня есть MainActivity a BottomNavigation, по которому я перемещаюсь по трем фрагментам.И моя проблема в том, что при нажатии кнопки «Назад» (из нижней панели инструментов навигации Android) открывается предыдущий фрагмент, но я хочу, чтобы приложение закрылось.Поэтому мой вопрос: как мне предотвратить открытие предыдущих фрагментов?

PS: я знаю, что это как-то связано с обратным стеком FragmentMananger, но я не понимал, как его использовать.

PS2: извините за плохой английский.

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Фрагменты находятся в backstack.

Редактировать:

Работать с FragmentTransaction и использовать addToBackStack (null)

//  Create new fragment and transaction
    Fragment newFragment = new  ExampleFragment();
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
    transaction.replace(R.id.fragment_container, newFragment);
    transaction.addToBackStack(null);

// Commit the transaction
    transaction.commit();
0 голосов
/ 01 июня 2018

Переопределите метод onBackPressed() в своей деятельности.

@Override
public void onBackPressed() {
    finish(); //This would close the app
}

Слово предостережения.Это закроет действие во всех случаях, когда пользователь нажимает назад.Чтобы избежать этого, возможно, вы хотели бы создать что-то вроде этого:

@Override
public void onBackPressed() {
    if(someCondition) {
        finish(); //This would close the activity
    }
    else {
        super.onBackPressed(); //Fallbacks to default Android implementation
    }
}
...