0

I have a bottom nav bar with 4 section fragment attached. In every fragment there is something by clicking that I am going to other fragment which are not section fragment. I want to show bottom nav bar only in section fragment. So how to hide bottom nav bar in other fragment?
Here is my bottom nav bar code:

package com.fahim69.bazaarapp.FragmentHolder;
public class ShowFragment extends AppCompatActivity {
BottomNavigationView bottomnav;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_show_fragment);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
    WindowManager.LayoutParams.FLAG_FULLSCREEN);
    bottomnav = findViewById(R.id.nav_bar);
    replacefragment(new HomeFragment());
    bottomnav.setOnItemSelectedListener(new NavigationBarView.OnItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            Fragment fragment = null;
            switch (item.getItemId()) {
                case R.id.nav_home:
                    replacefragment(new HomeFragment());
                    break;
                case R.id.nav_category:
                    replacefragment(new CategoryFragment());
                    break;
                case R.id.nav_cart:
                    replacefragment(new CartFragment());
                    break;
                case R.id.nav_profile:
                    replacefragment(new ProfileFragment());
                    break;
            }

            return true;
        }
    });
    

}

private void replacefragment(Fragment fragment) {
    FragmentManager fragmentManager = getSupportFragmentManager();
    //fragmentManager.popBackStack();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.fragment_container, fragment);
    fragmentTransaction.addToBackStack(null);
    fragmentTransaction.commit();
}

@Override
public void onBackPressed() {
    FragmentManager fm = getSupportFragmentManager();
    if(fm.getBackStackEntryCount()>0)fm.popBackStack();
    else{
        super.onBackPressed();
    }

}

}

1 Answers1

0

Look at this code of replace fragment :

    fragmentTransaction.replace(R.id.fragment_container, fragment);

We are loading all the fragment on "R.id.fragment_container" frame of the "R.layout.activity_show_fragment" layout . In the show_fragment layout , there exist a nav_bar , due to which all of the fragment are being shown with bottom navigation.

In order to hide bottom navigation in other fragment than sectionfragment, create a new activity without bottom_navigation and replace the fragment in new fragment_container of that activity.

Niranjan Nlc
  • 126
  • 1
  • 7