lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey

NavigationUI

public class NavigationUI
extends Object

java.lang.Object
   ↳ androidx.navigation.ui.NavigationUI


Class which hooks up elements typically in the 'chrome' of your application such as global navigation patterns like a navigation drawer or bottom nav bar with your NavController.

Summary

Public methods

static boolean navigateUp(DrawerLayout drawerLayout, NavController navController)

Handles the Up button by delegating its behavior to the given NavController.

static boolean onNavDestinationSelected(MenuItem item, NavController navController)

Attempt to navigate to the NavDestination associated with the given MenuItem.

static void setupActionBarWithNavController(AppCompatActivity activity, NavController navController)

Sets up the ActionBar returned by AppCompatActivity.getSupportActionBar() for use with a NavController.

static void setupActionBarWithNavController(AppCompatActivity activity, NavController navController, DrawerLayout drawerLayout)

Sets up the ActionBar returned by AppCompatActivity.getSupportActionBar() for use with a NavController.

static void setupWithNavController(BottomNavigationView bottomNavigationView, NavController navController)

Sets up a BottomNavigationView for use with a NavController.

static void setupWithNavController(NavigationView navigationView, NavController navController)

Sets up a NavigationView for use with a NavController.

Inherited methods

Public methods

navigateUp

public static boolean navigateUp (DrawerLayout drawerLayout, 
                NavController navController)

Handles the Up button by delegating its behavior to the given NavController. This should generally be called from AppCompatActivity.onSupportNavigateUp().

If you do not have a DrawerLayout, you should call NavController.navigateUp() directly.

Parameters
drawerLayout DrawerLayout: The DrawerLayout that should be opened if you are on the topmost level of the app.

navController NavController: The NavController that hosts your content.

Returns
boolean True if the NavController was able to navigate up.

onNavDestinationSelected

public static boolean onNavDestinationSelected (MenuItem item, 
                NavController navController)

Attempt to navigate to the NavDestination associated with the given MenuItem. This MenuItem should have been added via one of the helper methods in this class.

Importantly, it assumes the menu item id matches a valid action id or destination id to be navigated to.

Parameters
item MenuItem: The selected MenuItem.

navController NavController: The NavController that hosts the destination.

Returns
boolean True if the NavController was able to navigate to the destination associated with the given MenuItem.

setupActionBarWithNavController

public static void setupActionBarWithNavController (AppCompatActivity activity, 
                NavController navController)

Sets up the ActionBar returned by AppCompatActivity.getSupportActionBar() for use with a NavController.

By calling this method, the title in the action bar will automatically be updated when the destination changes (assuming there is a valid label).

The action bar will also display the Up button when you are on a non-root destination. Call navigateUp(DrawerLayout, NavController) to handle the Up button.

Parameters
activity AppCompatActivity: The activity hosting the action bar that should be kept in sync with changes to the NavController.

navController NavController: The NavController that supplies the secondary menu. Navigation actions on this NavController will be reflected in the title of the action bar.

setupActionBarWithNavController

public static void setupActionBarWithNavController (AppCompatActivity activity, 
                NavController navController, 
                DrawerLayout drawerLayout)

Sets up the ActionBar returned by AppCompatActivity.getSupportActionBar() for use with a NavController.

By calling this method, the title in the action bar will automatically be updated when the destination changes (assuming there is a valid label).

The action bar will also display the Up button when you are on a non-root destination and the drawer icon when on the root destination, automatically animating between them. Call navigateUp(DrawerLayout, NavController) to handle the Up button.

Parameters
activity AppCompatActivity: The activity hosting the action bar that should be kept in sync with changes to the NavController.

navController NavController: The NavController whose navigation actions will be reflected in the title of the action bar.

drawerLayout DrawerLayout: The DrawerLayout that should be toggled from the home button

setupWithNavController

public static void setupWithNavController (BottomNavigationView bottomNavigationView, 
                NavController navController)

Sets up a BottomNavigationView for use with a NavController. This will call onNavDestinationSelected(MenuItem, NavController) when a menu item is selected. The selected item in the BottomNavigationView will automatically be updated when the destination changes.

Parameters
bottomNavigationView BottomNavigationView: The BottomNavigationView that should be kept in sync with changes to the NavController.

navController NavController: The NavController that supplies the primary menu. Navigation actions on this NavController will be reflected in the selected item in the BottomNavigationView.

setupWithNavController

public static void setupWithNavController (NavigationView navigationView, 
                NavController navController)

Sets up a NavigationView for use with a NavController. This will call onNavDestinationSelected(MenuItem, NavController) when a menu item is selected. The selected item in the NavigationView will automatically be updated when the destination changes.

Parameters
navigationView NavigationView: The NavigationView that should be kept in sync with changes to the NavController.

navController NavController: The NavController that supplies the primary and secondary menu. Navigation actions on this NavController will be reflected in the selected item in the NavigationView.