1

I have created a Bottom Navigation View. It works fine except that when I use addToBackStack(null) in handling the fragments, I have fragments [A] [B] [C] and [D], clicking on the back key cycles through all fragments in the backStack. This I don't want. I only want the fragment [A] returned whenever I press the back key.

If I remove addToBackStack(null), pressing the back key closes the fragment.

I have tried many solutions but am not getting things right. Please I will need assistance. My code is written below;

 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();


}
JAtoms
  • 522
  • 5
  • 10

0 Answers0