Android Navigation remove toolbar from first fragment
Asked Answered
P

1

5

I'm trying to implement the new Jetpack Navigation framework from google, but I'm running into an issue. I want to use my first fragment as a login page and don't want to have a toolbar in it. How can I remove the toolbar from one of the fragments, but then add it for subsequent ones?

Edit: Tried looking into the AppBarConfiguration, but that only seems to affect whether or not the back arrow shows up

Poisson answered 30/3, 2020 at 22:27 Comment(0)
P
9

Ended up figuring out how to do it. According to the android documentation you have to add an OnDestinationChangedListener to the nav controller and then you can do a switch on all the different destinations that you need to change the constant UI elements within.

navController = Navigation.findNavController(this, R.id.nav_host_fragment);
final Toolbar toolbar = findViewById(R.id.toolbar);

navController.addOnDestinationChangedListener(new NavController.OnDestinationChangedListener() {
    @Override
    public void onDestinationChanged(@NonNull NavController controller, @NonNull NavDestination destination, @Nullable Bundle arguments) {
        int id = destination.getId();
        switch (id) {
            case R.id.mainFragment:
                toolbar.setVisibility(View.GONE);
                break;
            default:
                toolbar.setVisibility(View.VISIBLE);
                break;
        }
    }
});
Poisson answered 30/3, 2020 at 23:24 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.