Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

Navigation

class Navigation
kotlin.Any
   ↳ androidx.navigation.Navigation

Entry point for navigation operations.

This class provides utilities for finding a relevant NavController instance from various common places in your application, or for performing navigation in response to UI events.

Summary

Public methods

static OnClickListener

Create an android.view.View.OnClickListener for navigating to a destination.

static OnClickListener
createNavigateOnClickListener(@IdRes resId: Int, @Nullable args: Bundle?)

Create an android.view.View.OnClickListener for navigating to a destination.

static OnClickListener

Create an android.view.View.OnClickListener for navigating to a destination via a generated NavDirections.

static NavController
findNavController(@NonNull activity: Activity, @IdRes viewId: Int)

Find a NavController given the id of a View and its containing Activity.

static NavController
findNavController(@NonNull view: View)

Find a NavController given a local View.

static Unit
setViewNavController(@NonNull view: View, @Nullable controller: NavController?)

Associates a NavController with the given View, allowing developers to use findNavController(View) and findNavController(Activity, int) with that View or any of its children to retrieve the NavController.

Public methods

createNavigateOnClickListener

@NonNull static fun createNavigateOnClickListener(@IdRes resId: Int): OnClickListener

Create an android.view.View.OnClickListener for navigating to a destination. This supports both navigating via an action and directly navigating to a destination.

Parameters
resId Int: an action id or a destination id to navigate to when the view is clicked
Return
OnClickListener: a new click listener for setting on an arbitrary view

createNavigateOnClickListener

@NonNull static fun createNavigateOnClickListener(@IdRes resId: Int, @Nullable args: Bundle?): OnClickListener

Create an android.view.View.OnClickListener for navigating to a destination. This supports both navigating via an action and directly navigating to a destination.

Parameters
resId Int: an action id or a destination id to navigate to when the view is clicked
args Int: arguments to pass to the final destination
Return
OnClickListener: a new click listener for setting on an arbitrary view

createNavigateOnClickListener

@NonNull static fun createNavigateOnClickListener(@NonNull directions: NavDirections): OnClickListener

Create an android.view.View.OnClickListener for navigating to a destination via a generated NavDirections.

Parameters
directions NavDirections: directions that describe this navigation operation
Return
OnClickListener: a new click listener for setting on an arbitrary view

findNavController

@NonNull static fun findNavController(@NonNull activity: Activity, @IdRes viewId: Int): NavController

Find a NavController given the id of a View and its containing Activity. This is a convenience wrapper around findNavController(View).

This method will locate the NavController associated with this view. This is automatically populated for the id of a NavHost and its children.

Parameters
activity Activity: The Activity hosting the view
viewId Activity: The id of the view to search from
Return
NavController: the NavController associated with the view referenced by id
Exceptions
IllegalStateException if the given viewId does not correspond with a NavHost or is not within a NavHost.

findNavController

@NonNull static fun findNavController(@NonNull view: View): NavController

Find a NavController given a local View.

This method will locate the NavController associated with this view. This is automatically populated for views that are managed by a NavHost and is intended for use by various listener interfaces.

Parameters
view View: the view to search from
Return
NavController: the locally scoped NavController to the given view
Exceptions
IllegalStateException if the given view does not correspond with a NavHost or is not within a NavHost.

setViewNavController

static fun setViewNavController(@NonNull view: View, @Nullable controller: NavController?): Unit

Associates a NavController with the given View, allowing developers to use findNavController(View) and findNavController(Activity, int) with that View or any of its children to retrieve the NavController.

This is generally called for you by the hosting NavHost.

Parameters
view View: View that should be associated with the given NavController
controller View: The controller you wish to later retrieve via findNavController(View)