Cómo agregar compatibilidad con tipos de destinos nuevos

Los NavControllers se basan en uno o más objetos Navigator para realizar la operación de navegación. De forma predeterminada, todos los NavControllers te permiten dejar el gráfico de navegación si te diriges a otra actividad mediante la clase ActivityNavigator y su clase ActivityNavigator.Destination anidada. Para poder navegar a cualquier otro tipo de destino, se deben agregar uno o más objetos Navigator adicionales a NavController. Por ejemplo, cuando usas fragmentos como destinos, el objeto NavHostFragment agrega automáticamente la clase FragmentNavigator a su NavController.

Para agregar un objeto Navigator nuevo a un elemento NavController, debes usar el método NavController de la clase getNavigatorProvider() correspondiente, seguido del método addNavigator() de la clase. En el siguiente código, se muestra un ejemplo de cómo agregar un objeto CustomNavigator ficticio a un elemento NavController:

Kotlin

val customNavigator = CustomNavigator()
navController.navigatorProvider += customNavigator

Java

CustomNavigator customNavigator = new CustomNavigator();
navController.getNavigatorProvider().addNavigator(customNavigator);

La mayoría de las clases Navigator tienen una subclase de destino anidada. Esa subclase se puede utilizar para especificar atributos adicionales exclusivos de tu destino. Si deseas obtener más información sobre las subclases de destino, consulta la documentación de referencia de la clase Navigator adecuada.

Recursos adicionales

Para obtener más información acerca de la navegación, consulta los siguientes recursos adicionales.

Ejemplos

Codelabs

Videos