NavigationUI
public
final
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(NavController navController, AppBarConfiguration configuration)
Handles the Up button by delegating its behavior to the given NavController. |
static
boolean
|
navigateUp(NavController navController, Openable openableLayout)
Handles the Up button by delegating its behavior to the given NavController. |
static
boolean
|
onNavDestinationSelected(MenuItem item, NavController navController)
Attempt to navigate to the |
static
void
|
setupActionBarWithNavController(AppCompatActivity activity, NavController navController)
Sets up the ActionBar returned by |
static
void
|
setupActionBarWithNavController(AppCompatActivity activity, NavController navController, AppBarConfiguration configuration)
Sets up the ActionBar returned by |
static
void
|
setupActionBarWithNavController(AppCompatActivity activity, NavController navController, Openable openableLayout)
Sets up the ActionBar returned by |
static
void
|
setupWithNavController(Toolbar toolbar, NavController navController)
Sets up a |
static
void
|
setupWithNavController(CollapsingToolbarLayout collapsingToolbarLayout, Toolbar toolbar, NavController navController)
Sets up a |
static
void
|
setupWithNavController(CollapsingToolbarLayout collapsingToolbarLayout, Toolbar toolbar, NavController navController, AppBarConfiguration configuration)
Sets up a |
static
void
|
setupWithNavController(Toolbar toolbar, NavController navController, Openable openableLayout)
Sets up a |
static
void
|
setupWithNavController(NavigationView navigationView, NavController navController)
Sets up a |
static
void
|
setupWithNavController(Toolbar toolbar, NavController navController, AppBarConfiguration configuration)
Sets up a |
static
void
|
setupWithNavController(CollapsingToolbarLayout collapsingToolbarLayout, Toolbar toolbar, NavController navController, Openable openableLayout)
Sets up a |
static
void
|
setupWithNavController(BottomNavigationView bottomNavigationView, NavController navController)
Sets up a |
Inherited methods | |
---|---|
Public methods
navigateUp
public static boolean navigateUp (NavController navController, AppBarConfiguration configuration)
Handles the Up button by delegating its behavior to the given NavController. This is
an alternative to using NavController.navigateUp()
directly when the given
AppBarConfiguration
needs to be considered when determining what should happen
when the Up button is pressed.
In cases where no Up action is available, the
AppBarConfiguration.getFallbackOnNavigateUpListener()
will be called to provide
additional control.
Parameters | |
---|---|
navController |
NavController : The NavController that hosts your content. |
configuration |
AppBarConfiguration : Additional configuration options for determining what should happen
when the Up button is pressed. |
Returns | |
---|---|
boolean |
True if the NavController was able to navigate up.
|
navigateUp
public static boolean navigateUp (NavController navController, Openable openableLayout)
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 Openable
layout, you should call
NavController.navigateUp()
directly.
Parameters | |
---|---|
navController |
NavController : The NavController that hosts your content. |
openableLayout |
Openable : The Openable layout that should be opened if you are on the topmost
level of the app. |
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.
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.
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 start destination of your navigation graph is considered the only top level
destination. On all other destinations, the ActionBar will show the Up button.
Call NavController.navigateUp()
to handle the Up button.
Destinations that implement FloatingWindow
will be ignored.
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, AppBarConfiguration configuration)
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 AppBarConfiguration
you provide controls how the Navigation button is
displayed.
Call navigateUp(NavController, AppBarConfiguration)
to handle the Up button.
Destinations that implement FloatingWindow
will be ignored.
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. |
configuration |
AppBarConfiguration : Additional configuration options for customizing the behavior of the
ActionBar
|
setupActionBarWithNavController
public static void setupActionBarWithNavController (AppCompatActivity activity, NavController navController, Openable openableLayout)
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 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 Openable layout is non null. On all other destinations,
the ActionBar will show the Up button.
Call navigateUp(NavController, Openable)
to handle the Up button.
Destinations that implement FloatingWindow
will be ignored.
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. |
openableLayout |
Openable : The Openable layout that should be toggled from the home button |
setupWithNavController
public static void setupWithNavController (Toolbar toolbar, NavController navController)
Sets up a Toolbar
for use with a NavController
.
By calling this method, the title in the Toolbar will automatically be updated when
the destination changes (assuming there is a valid label
).
The start destination of your navigation graph is considered the only top level
destination. On all other destinations, the Toolbar will show the Up button. This
method will call NavController.navigateUp()
when the Navigation button
is clicked.
Destinations that implement FloatingWindow
will be ignored.
Parameters | |
---|---|
toolbar |
Toolbar : The Toolbar 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 Toolbar. |
setupWithNavController
public static void setupWithNavController (CollapsingToolbarLayout collapsingToolbarLayout, Toolbar toolbar, NavController navController)
Sets up a CollapsingToolbarLayout
and Toolbar
for use with a
NavController
.
By calling this method, the title in the CollapsingToolbarLayout will automatically be
updated when the destination changes (assuming there is a valid
label
).
The start destination of your navigation graph is considered the only top level
destination. On all other destinations, the Toolbar will show the Up button. This
method will call NavController.navigateUp()
when the Navigation button
is clicked.
Destinations that implement FloatingWindow
will be ignored.
Parameters | |
---|---|
collapsingToolbarLayout |
CollapsingToolbarLayout : The CollapsingToolbarLayout that should be kept in sync with
changes to the NavController. |
toolbar |
Toolbar : The Toolbar 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 Toolbar.
|
setupWithNavController
public static void setupWithNavController (CollapsingToolbarLayout collapsingToolbarLayout, Toolbar toolbar, NavController navController, AppBarConfiguration configuration)
Sets up a CollapsingToolbarLayout
and Toolbar
for use with a
NavController
.
By calling this method, the title in the CollapsingToolbarLayout will automatically be
updated when the destination changes (assuming there is a valid
label
).
The 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 navigateUp(NavController, AppBarConfiguration)
when the Navigation button
is clicked.
Destinations that implement FloatingWindow
will be ignored.
Parameters | |
---|---|
collapsingToolbarLayout |
CollapsingToolbarLayout : The CollapsingToolbarLayout that should be kept in sync with
changes to the NavController. |
toolbar |
Toolbar : The Toolbar 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 Toolbar. |
configuration |
AppBarConfiguration : Additional configuration options for customizing the behavior of the
Toolbar
|
setupWithNavController
public static void setupWithNavController (Toolbar toolbar, NavController navController, Openable openableLayout)
Sets up a Toolbar
for use with a NavController
.
By calling this method, the title in the Toolbar will automatically be updated when
the destination changes (assuming there is a valid 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 Openable layout is non null. On all other destinations,
the Toolbar will show the Up button. This method will call
navigateUp(NavController, Openable)
when the Navigation button is clicked.
Destinations that implement FloatingWindow
will be ignored.
Parameters | |
---|---|
toolbar |
Toolbar : The Toolbar 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 Toolbar. |
openableLayout |
Openable : The Openable layout that should be toggled from the Navigation button |
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.
If the NavigationView
is directly contained with an Openable
layout,
it will be closed when a menu item is selected.
Similarly, if the NavigationView
has a BottomSheetBehavior
associated with
it (as is the case when using a BottomSheetDialog
),
the bottom sheet will be hidden when a menu item is selected.
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.
|
setupWithNavController
public static void setupWithNavController (Toolbar toolbar, NavController navController, AppBarConfiguration configuration)
Sets up a Toolbar
for use with a NavController
.
By calling this method, the title in the Toolbar will automatically be updated when
the destination changes (assuming there is a valid label
).
The 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 navigateUp(NavController, AppBarConfiguration)
when the Navigation button
is clicked.
Destinations that implement FloatingWindow
will be ignored.
Parameters | |
---|---|
toolbar |
Toolbar : The Toolbar 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 Toolbar. |
configuration |
AppBarConfiguration : Additional configuration options for customizing the behavior of the
Toolbar
|
setupWithNavController
public static void setupWithNavController (CollapsingToolbarLayout collapsingToolbarLayout, Toolbar toolbar, NavController navController, Openable openableLayout)
Sets up a CollapsingToolbarLayout
and Toolbar
for use with a
NavController
.
By calling this method, the title in the CollapsingToolbarLayout will automatically be
updated when the destination changes (assuming there is a valid
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 Openable layout is non null. On all other destinations,
the Toolbar will show the Up button. This method will call
navigateUp(NavController, Openable)
when the Navigation button is clicked.
Destinations that implement FloatingWindow
will be ignored.
Parameters | |
---|---|
collapsingToolbarLayout |
CollapsingToolbarLayout : The CollapsingToolbarLayout that should be kept in sync with
changes to the NavController. |
toolbar |
Toolbar : The Toolbar 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 Toolbar. |
openableLayout |
Openable : The Openable layout that should be toggled from the Navigation 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.
|