NavigationView y BottomNavigationView
DEFINICIÓN
NavigationView

Hereda de FrameLayout.
Representa un menú de navegación estandar para aplicaciones.
El contenido del menú puede ser incluido en un archivo de resource de menú.
Debe estar contenido en un DrawerLayout.
BottomNavigationView

Hereda de FrameLayout.NavigationBarView.
Representa una barra de navegación estandar para las aplicaciones. Es una implementación de bottom navigation de Material Design.
Hace sencillo para los usuaros poder explorar y moverse entre las diferentes Views de nivel superior con un solo toque. Deben usarse solo sí la App tiene de 3 a 5 destinos de nivel superior.
El contenido de la barra se puede añadir con un archivo de resource de menú. Cada una de las entradas del menú será utilizada para pintar un item en la barra.
EJEMPLO
Empezamos con lo que habíamos acabado en el ejemplo anterior. Ahora vamos a implementar los nuevos conceptos para ir dando embergadura a nuestra APP.
Navigation View
Como ya hemos dicho, para implementar un NavigationView, que es básicamente un Navigation Drawer, debemos seguir los siguientes pasos:
Meter todo el Layout en un
DrawerLayout.
Añadir un
NavigationViewal final de nuestroDraweLayout.
Crear nuestro archivo
nav_header.xmlque es de donde sacaremos el título de nuestro Drawer:
Crear nuestro archivo
navigation_drawer.xmlque es el menú que se mostrará bajo el encabezado del Drawer:
Por último configuramos el listener del botón de Navegación de la TopAppBar:
Y con todo eso echo nos queda el siguiente resultado:

BottomNavigationView
Lo más importante que debemos tener en cuenta es que la BottomNavigationView no se coloca al pie de la pantalla por defecto sino que la debemos colocar ahí nosotros.
Esto puede suponer un quebradero de cabeza para Activities con un Layout muy complejo.
Además, para que funcionen las animaciones de desaparición con Scroll debe ser descendiente directo de un CoordinatorLayout.
En el caso del BottomNavigationView solo necesitamos dos archivos:
Añadir a nuestro activity_main.xml una View del tipo
BottomNavigationView:
IMPORTANTE
La View de arriba debe encontrarse dentro de un ConstraintLayout del tamaño de la pantalla para poder relacionarla con el pie de la pantalla.
Crear un archivo de Menú en el cual cada uno de los items representa una entrada en el menú de navegación. En este caso vamos a utilizar un archivo ya conocido:
Vamos a ver como queda el archivo de Layout completo y de ahí directamente veremos el resultado:

Last updated

