Navigation

open 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
open static NavController
findNavController(activity: Activity, viewId: Int)

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

open static NavController

Find a NavController given a local View.

open static OnClickListener

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

open static OnClickListener

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

open static Unit
setViewNavController(view: View, 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

findNavController

open static fun findNavController(activity: Activity, 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

open static fun findNavController(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.

createNavigateOnClickListener

open static fun createNavigateOnClickListener(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

open static fun createNavigateOnClickListener(resId: Int, 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

setViewNavController

open static fun setViewNavController(view: View, 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)