Как перейти к фрагменту Root в виде навигации снизу - PullRequest
1 голос
/ 27 февраля 2020

Я создал вид снизу навигации. Он работает нормально, за исключением того, что когда я использую addToBackStack(null) при обработке фрагментов, у меня есть фрагменты [A] [B] [C] и [D], щелкая по клавише возврата, циклически перебирая все фрагменты в backStack. Это я не хочу. Я только хочу, чтобы фрагмент [A] возвращался всякий раз, когда я нажимаю клавишу возврата.

Если я удаляю addToBackStack(null), нажатие клавиши возврата закрывает фрагмент.

Я пробовал много решений, но не все получается правильно. Пожалуйста, мне понадобится помощь. Мой код написан ниже;

 BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_nav_view);
    bottomNavigationView.setOnNavigationItemSelectedListener(AtomsNavListener);

    //Keep home fragment selected
    getSupportFragmentManager().beginTransaction()
            .replace(R.id.fragment_container, new HomeFragment()).commit();
}

private BottomNavigationView.OnNavigationItemSelectedListener AtomsNavListener = new
        BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
                Fragment selectedFragment = null;


                switch (menuItem.getItemId()) {
                    case R.id.bottom_home:
                        selectedFragment = new HomeFragment();
                        break;

                    case R.id.bottom_book_appointment:
                        selectedFragment = new ConnectADocFragment();
                        break;

                    case R.id.bottom_history:
                        selectedFragment = new AppointmentHistoryFragment();
                        break;

                    case R.id.bottom_profile:
                        selectedFragment = new ProfileFragment();
                        break;
                }

                navigateToFragment(selectedFragment);
                return true;
            }
        };

private void navigateToFragment(Fragment selectedFragment) {

    getSupportFragmentManager().beginTransaction()
            .replace(R.id.fragment_container, selectedFragment)
            .addToBackStack(null)
            .commit();


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...