# androidx.navigation.ui

*** ** * ** ***

## Interfaces

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration.OnNavigateUpListener` | Interface for providing custom 'up' behavior beyond what is provided by `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigateUp()`. |

## Classes

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration` | Configuration options for `https://developer.android.com/reference/kotlin/androidx/navigation/ui/NavigationUI` methods that interact with implementations of the app bar pattern such as `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar`, `https://developer.android.com/reference/com/google/android/material/appbar/CollapsingToolbarLayout.html`, and `https://developer.android.com/reference/kotlin/androidx/appcompat/app/ActionBar`. |
| `https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration.Builder` | The Builder class for constructing new `https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration` instances. |
| `https://developer.android.com/reference/kotlin/androidx/navigation/ui/R` |   |
| `https://developer.android.com/reference/kotlin/androidx/navigation/ui/R.anim` |   |
| `https://developer.android.com/reference/kotlin/androidx/navigation/ui/R.animator` |   |

## Objects

|---|---|
| `https://developer.android.com/reference/kotlin/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 `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. |

## Annotations

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/ui/NavigationUiSaveStateControl` |   |

## Top-level functions summary

|---|---|
| `inline https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration` | `https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#AppBarConfiguration(androidx.navigation.NavGraph,androidx.customview.widget.Openable,kotlin.Function0)( navGraph: https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph, drawerLayout: https://developer.android.com/reference/kotlin/androidx/customview/widget/Openable?, noinline fallbackOnNavigateUpListener: () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Configuration options for `https://developer.android.com/reference/kotlin/androidx/navigation/ui/NavigationUI` methods that interact with implementations of the app bar pattern such as `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar`, `https://developer.android.com/reference/com/google/android/material/appbar/CollapsingToolbarLayout.html`, and `https://developer.android.com/reference/kotlin/androidx/appcompat/app/ActionBar`. |
| `inline https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration` | `https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#AppBarConfiguration(kotlin.collections.Set,androidx.customview.widget.Openable,kotlin.Function0)( topLevelDestinationIds: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>, drawerLayout: https://developer.android.com/reference/kotlin/androidx/customview/widget/Openable?, noinline fallbackOnNavigateUpListener: () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Configuration options for `https://developer.android.com/reference/kotlin/androidx/navigation/ui/NavigationUI` methods that interact with implementations of the app bar pattern such as `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar`, `https://developer.android.com/reference/com/google/android/material/appbar/CollapsingToolbarLayout.html`, and `https://developer.android.com/reference/kotlin/androidx/appcompat/app/ActionBar`. |
| `inline https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration` | `https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#AppBarConfiguration(android.view.Menu,androidx.customview.widget.Openable,kotlin.Function0)( topLevelMenu: https://developer.android.com/reference/android/view/Menu.html, drawerLayout: https://developer.android.com/reference/kotlin/androidx/customview/widget/Openable?, noinline fallbackOnNavigateUpListener: () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Configuration options for `https://developer.android.com/reference/kotlin/androidx/navigation/ui/NavigationUI` methods that interact with implementations of the app bar pattern such as `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar`, `https://developer.android.com/reference/com/google/android/material/appbar/CollapsingToolbarLayout.html`, and `https://developer.android.com/reference/kotlin/androidx/appcompat/app/ActionBar`. |

## Extension functions summary

|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavController.https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#(androidx.navigation.NavController).navigateUp(androidx.navigation.ui.AppBarConfiguration)(appBarConfiguration: https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration)` Handles the Up button by delegating its behavior to the given `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavController.https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#(androidx.navigation.NavController).navigateUp(androidx.customview.widget.Openable)(drawerLayout: https://developer.android.com/reference/kotlin/androidx/customview/widget/Openable?)` Handles the Up button by delegating its behavior to the given `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/android/view/MenuItem.html.https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#(android.view.MenuItem).onNavDestinationSelected(androidx.navigation.NavController)(navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController)` Attempt to navigate to the `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination` associated with this `https://developer.android.com/reference/android/view/MenuItem.html`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatActivity.https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#(androidx.appcompat.app.AppCompatActivity).setupActionBarWithNavController(androidx.navigation.NavController,androidx.navigation.ui.AppBarConfiguration)( navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController, configuration: https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration )` Sets up the ActionBar returned by `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatActivity#getSupportActionBar()` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatActivity.https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#(androidx.appcompat.app.AppCompatActivity).setupActionBarWithNavController(androidx.navigation.NavController,androidx.drawerlayout.widget.DrawerLayout)( navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController, drawerLayout: https://developer.android.com/reference/kotlin/androidx/drawerlayout/widget/DrawerLayout? )` Sets up the ActionBar returned by `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatActivity#getSupportActionBar()` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/com/google/android/material/navigation/NavigationBarView.html.https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#(com.google.android.material.navigation.NavigationBarView).setupWithNavController(androidx.navigation.NavController)(navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController)` Sets up a `https://developer.android.com/reference/com/google/android/material/navigation/NavigationBarView.html` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/com/google/android/material/navigation/NavigationView.html.https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#(com.google.android.material.navigation.NavigationView).setupWithNavController(androidx.navigation.NavController)(navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController)` Sets up a `https://developer.android.com/reference/com/google/android/material/navigation/NavigationView.html` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar.https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#(androidx.appcompat.widget.Toolbar).setupWithNavController(androidx.navigation.NavController,androidx.navigation.ui.AppBarConfiguration)( navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController, configuration: https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration )` Sets up a `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar.https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#(androidx.appcompat.widget.Toolbar).setupWithNavController(androidx.navigation.NavController,androidx.drawerlayout.widget.DrawerLayout)( navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController, drawerLayout: https://developer.android.com/reference/kotlin/androidx/drawerlayout/widget/DrawerLayout? )` Sets up a `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/com/google/android/material/appbar/CollapsingToolbarLayout.html.https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#(com.google.android.material.appbar.CollapsingToolbarLayout).setupWithNavController(androidx.appcompat.widget.Toolbar,androidx.navigation.NavController,androidx.navigation.ui.AppBarConfiguration)( toolbar: https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar, navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController, configuration: https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration )` Sets up a `https://developer.android.com/reference/com/google/android/material/appbar/CollapsingToolbarLayout.html` and `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/com/google/android/material/appbar/CollapsingToolbarLayout.html.https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#(com.google.android.material.appbar.CollapsingToolbarLayout).setupWithNavController(androidx.appcompat.widget.Toolbar,androidx.navigation.NavController,androidx.drawerlayout.widget.DrawerLayout)( toolbar: https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar, navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController, drawerLayout: https://developer.android.com/reference/kotlin/androidx/drawerlayout/widget/DrawerLayout? )` Sets up a `https://developer.android.com/reference/com/google/android/material/appbar/CollapsingToolbarLayout.html` and `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. |

## Top-level functions

### AppBarConfiguration

Artifact: [androidx.navigation:navigation-ui](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/ui/AppBarConfiguration.kt+function:AppBarConfiguration) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
inline fun AppBarConfiguration(
    navGraph: NavGraph,
    drawerLayout: Openable? = null,
    noinline fallbackOnNavigateUpListener: () -> Boolean = { false }
): AppBarConfiguration
```

Configuration options for `https://developer.android.com/reference/kotlin/androidx/navigation/ui/NavigationUI` methods that interact with implementations of the app bar pattern such as `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar`, `https://developer.android.com/reference/com/google/android/material/appbar/CollapsingToolbarLayout.html`, and `https://developer.android.com/reference/kotlin/androidx/appcompat/app/ActionBar`.

| Parameters |
|---|---|
| `navGraph: https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` | The `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` whose start destination should be considered the only top level destination. The Up button will not be displayed when on the start destination of the graph. |
| `drawerLayout: https://developer.android.com/reference/kotlin/androidx/customview/widget/Openable? = null` | The Openable layout that should be toggled from the Navigation button. The the Navigation button will show a drawer symbol when it is not being shown as an Up button. |
| `noinline fallbackOnNavigateUpListener: () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = { false }` | Lambda that will be invoked if `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigateUp()` returns `false` |

### AppBarConfiguration

Artifact: [androidx.navigation:navigation-ui](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/ui/AppBarConfiguration.kt+function:AppBarConfiguration) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
inline fun AppBarConfiguration(
    topLevelDestinationIds: Set<Int>,
    drawerLayout: Openable? = null,
    noinline fallbackOnNavigateUpListener: () -> Boolean = { false }
): AppBarConfiguration
```

Configuration options for `https://developer.android.com/reference/kotlin/androidx/navigation/ui/NavigationUI` methods that interact with implementations of the app bar pattern such as `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar`, `https://developer.android.com/reference/com/google/android/material/appbar/CollapsingToolbarLayout.html`, and `https://developer.android.com/reference/kotlin/androidx/appcompat/app/ActionBar`.

| Parameters |
|---|---|
| `topLevelDestinationIds: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>` | The set of destinations by id considered at the top level of your information hierarchy. The Up button will not be displayed when on these destinations. |
| `drawerLayout: https://developer.android.com/reference/kotlin/androidx/customview/widget/Openable? = null` | The Openable layout that should be toggled from the Navigation button. The the Navigation button will show a drawer symbol when it is not being shown as an Up button. |
| `noinline fallbackOnNavigateUpListener: () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = { false }` | Lambda that will be invoked if `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigateUp()` returns `false` |

### AppBarConfiguration

Artifact: [androidx.navigation:navigation-ui](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/ui/AppBarConfiguration.kt+function:AppBarConfiguration) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
inline fun AppBarConfiguration(
    topLevelMenu: Menu,
    drawerLayout: Openable? = null,
    noinline fallbackOnNavigateUpListener: () -> Boolean = { false }
): AppBarConfiguration
```

Configuration options for `https://developer.android.com/reference/kotlin/androidx/navigation/ui/NavigationUI` methods that interact with implementations of the app bar pattern such as `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar`, `https://developer.android.com/reference/com/google/android/material/appbar/CollapsingToolbarLayout.html`, and `https://developer.android.com/reference/kotlin/androidx/appcompat/app/ActionBar`.

| Parameters |
|---|---|
| `topLevelMenu: https://developer.android.com/reference/android/view/Menu.html` | A Menu containing MenuItems corresponding with the destinations considered at the top level of your information hierarchy. The Up button will not be displayed when on these destinations. |
| `drawerLayout: https://developer.android.com/reference/kotlin/androidx/customview/widget/Openable? = null` | The Openable layout that should be toggled from the Navigation button. The the Navigation button will show a drawer symbol when it is not being shown as an Up button. |
| `noinline fallbackOnNavigateUpListener: () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = { false }` | Lambda that will be invoked if `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigateUp()` returns `false` |

## Extension functions

### NavController.navigateUp

Artifact: [androidx.navigation:navigation-ui](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/ui/NavController.kt+function:navigateUp) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
fun NavController.navigateUp(appBarConfiguration: AppBarConfiguration): Boolean
```

Handles the Up button by delegating its behavior to the given `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if the `https://developer.android.com/reference/kotlin/androidx/navigation/NavController` was able to navigate up. |

### NavController.navigateUp

Artifact: [androidx.navigation:navigation-ui](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/ui/NavController.kt+function:navigateUp) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
fun NavController.navigateUp(drawerLayout: Openable?): Boolean
```

Handles the Up button by delegating its behavior to the given `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`.

This is equivalent to calling `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigateUp()` if the `https://developer.android.com/reference/kotlin/androidx/customview/widget/Openable` layout is null.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if the `https://developer.android.com/reference/kotlin/androidx/navigation/NavController` was able to navigate up. |

### MenuItem.onNavDestinationSelected

Artifact: [androidx.navigation:navigation-ui](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/ui/MenuItem.kt+function:onNavDestinationSelected) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
fun MenuItem.onNavDestinationSelected(navController: NavController): Boolean
```

Attempt to navigate to the `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination` associated with this `https://developer.android.com/reference/android/view/MenuItem.html`.

Importantly, it assumes the `https://developer.android.com/reference/android/view/MenuItem.html#getItemId()` matches a valid `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination#getAction(kotlin.Int)` or `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination#id()` to be navigated to.

By default, the back stack will be popped back to the navigation graph's start destination. Menu items that have `android:menuCategory="secondary"` will not pop the back stack.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if the `https://developer.android.com/reference/kotlin/androidx/navigation/NavController` was able to navigate to the destination. |

### AppCompatActivity.setupActionBarWithNavController

Artifact: [androidx.navigation:navigation-ui](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/ui/Activity.kt+function:setupActionBarWithNavController) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
fun AppCompatActivity.setupActionBarWithNavController(
    navController: NavController,
    configuration: AppBarConfiguration = AppBarConfiguration(navController.graph)
): Unit
```

Sets up the ActionBar returned by `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatActivity#getSupportActionBar()` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`.

By calling this method, the title in the action bar will automatically be updated when the destination changes (assuming there is a valid `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination#label()`).

The `https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration` you provide controls how the Navigation button is displayed.

You are responsible for calling `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigateUp()` to handle the Navigation button. Typically this is done in `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatActivity#onSupportNavigateUp()`.

| Parameters |
|---|---|
| `navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController` | The NavController whose navigation actions will be reflected in the title of the action bar. |
| `configuration: https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration = AppBarConfiguration(navController.graph)` | Additional configuration options for customizing the behavior of the ActionBar |

### AppCompatActivity.setupActionBarWithNavController

Artifact: [androidx.navigation:navigation-ui](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/ui/Activity.kt+function:setupActionBarWithNavController) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
fun AppCompatActivity.setupActionBarWithNavController(
    navController: NavController,
    drawerLayout: DrawerLayout?
): Unit
```

Sets up the ActionBar returned by `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatActivity#getSupportActionBar()` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`.

By calling this method, the title in the action bar will automatically be updated when the destination changes (assuming there is a valid `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination#label()`).

The start destination of your navigation graph is considered the only top level destination. On the start destination of your navigation graph, the ActionBar will show the drawer icon if the given `drawerLayout` is non null. On all other destinations, the ActionBar will show the Up button.

You are responsible for calling `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigateUp()` to handle the Navigation button. Typically this is done in `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatActivity#onSupportNavigateUp()`.

| Parameters |
|---|---|
| `navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController` | The NavController whose navigation actions will be reflected in the title of the action bar. |
| `drawerLayout: https://developer.android.com/reference/kotlin/androidx/drawerlayout/widget/DrawerLayout?` | The DrawerLayout that should be toggled from the Navigation button |

### NavigationBarView.setupWithNavController

Artifact: [androidx.navigation:navigation-ui](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/ui/BottomNavigationView.kt+function:setupWithNavController) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
fun NavigationBarView.setupWithNavController(navController: NavController): Unit
```

Sets up a `https://developer.android.com/reference/com/google/android/material/navigation/NavigationBarView.html` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. This will call `https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#(android.view.MenuItem).onNavDestinationSelected(androidx.navigation.NavController)` when a menu item is selected.

The selected item in the NavigationView will automatically be updated when the destination changes.

### NavigationView.setupWithNavController

Artifact: [androidx.navigation:navigation-ui](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/ui/NavigationView.kt+function:setupWithNavController) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
fun NavigationView.setupWithNavController(navController: NavController): Unit
```

Sets up a `https://developer.android.com/reference/com/google/android/material/navigation/NavigationView.html` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. This will call `https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#(android.view.MenuItem).onNavDestinationSelected(androidx.navigation.NavController)` when a menu item is selected.

The selected item in the NavigationView will automatically be updated when the destination changes.

### Toolbar.setupWithNavController

Artifact: [androidx.navigation:navigation-ui](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/ui/Toolbar.kt+function:setupWithNavController) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
fun Toolbar.setupWithNavController(
    navController: NavController,
    configuration: AppBarConfiguration = AppBarConfiguration(navController.graph)
): Unit
```

Sets up a `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`.

By calling this method, the title in the Toolbar will automatically be updated when the destination changes (assuming there is a valid `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination#label()`).

The `https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration` you provide controls how the Navigation button is displayed and what action is triggered when the Navigation button is tapped.

This method will call `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigateUp()` when the navigation icon is clicked.

| Parameters |
|---|---|
| `navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController` | The NavController whose navigation actions will be reflected in the title of the Toolbar. |
| `configuration: https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration = AppBarConfiguration(navController.graph)` | Additional configuration options for customizing the behavior of the Toolbar |

### Toolbar.setupWithNavController

Artifact: [androidx.navigation:navigation-ui](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/ui/Toolbar.kt+function:setupWithNavController) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
fun Toolbar.setupWithNavController(
    navController: NavController,
    drawerLayout: DrawerLayout?
): Unit
```

Sets up a `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`.

By calling this method, the title in the Toolbar will automatically be updated when the destination changes (assuming there is a valid `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination#label()`).

The start destination of your navigation graph is considered the only top level destination. On the start destination of your navigation graph, the Toolbar will show the drawer icon if the given `drawerLayout` is non null. On all other destinations, the Toolbar will show the Up button.

This method will call `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigateUp()` when the navigation icon is clicked.

| Parameters |
|---|---|
| `navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController` | The NavController whose navigation actions will be reflected in the title of the Toolbar. |
| `drawerLayout: https://developer.android.com/reference/kotlin/androidx/drawerlayout/widget/DrawerLayout?` | The DrawerLayout that should be toggled from the Navigation button |

### CollapsingToolbarLayout.setupWithNavController

Artifact: [androidx.navigation:navigation-ui](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/ui/CollapsingToolbarLayout.kt+function:setupWithNavController) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
fun CollapsingToolbarLayout.setupWithNavController(
    toolbar: Toolbar,
    navController: NavController,
    configuration: AppBarConfiguration = AppBarConfiguration(navController.graph)
): Unit
```

Sets up a `https://developer.android.com/reference/com/google/android/material/appbar/CollapsingToolbarLayout.html` and `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`.

By calling this method, the title in the Toolbar will automatically be updated when the destination changes (assuming there is a valid `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination#label()`).

The `https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration` you provide controls how the Navigation button is displayed and what action is triggered when the Navigation button is tapped.

This method will call `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigateUp()` when the navigation icon is clicked.

| Parameters |
|---|---|
| `toolbar: https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar` | The Toolbar that should be kept in sync with changes to the NavController. |
| `navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController` | The NavController whose navigation actions will be reflected in the title of the Toolbar. |
| `configuration: https://developer.android.com/reference/kotlin/androidx/navigation/ui/AppBarConfiguration = AppBarConfiguration(navController.graph)` | Additional configuration options for customizing the behavior of the Toolbar |

### CollapsingToolbarLayout.setupWithNavController

Artifact: [androidx.navigation:navigation-ui](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/ui/CollapsingToolbarLayout.kt+function:setupWithNavController) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
fun CollapsingToolbarLayout.setupWithNavController(
    toolbar: Toolbar,
    navController: NavController,
    drawerLayout: DrawerLayout?
): Unit
```

Sets up a `https://developer.android.com/reference/com/google/android/material/appbar/CollapsingToolbarLayout.html` and `https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar` for use with a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`.

By calling this method, the title in the Toolbar will automatically be updated when the destination changes (assuming there is a valid `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination#label()`).

The start destination of your navigation graph is considered the only top level destination. On the start destination of your navigation graph, the Toolbar will show the drawer icon if the given `drawerLayout` is non null. On all other destinations, the Toolbar will show the Up button.

This method will call `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#navigateUp()` when the Navigation button is clicked.

| Parameters |
|---|---|
| `toolbar: https://developer.android.com/reference/kotlin/androidx/appcompat/widget/Toolbar` | The Toolbar that should be kept in sync with changes to the NavController. |
| `navController: https://developer.android.com/reference/kotlin/androidx/navigation/NavController` | The NavController whose navigation actions will be reflected in the title of the Toolbar. |
| `drawerLayout: https://developer.android.com/reference/kotlin/androidx/drawerlayout/widget/DrawerLayout?` | The DrawerLayout that should be toggled from the Navigation button |