Cajón de navegación debajo de la barra de herramientas

Estoy tratando de abrir el cajón de navegación debajo de la barra de herramientas.

        

¿Cómo vuelvo a formatear el xml para que la barra de navegación se abra debajo de la barra de herramientas?

Debería mover DrawerLayout como principal superior y mover la Toolbar de Toolbar fuera del DrawerLayout contenido de DrawerLayout . En resumen, esto se ve así:

 RelativeLayout ----Toolbar ----DrawerLayout ---ContentView ---DrawerList 

        

Sin embargo, las directrices de diseño de materiales indican que Navigation Drawer debe estar encima de la Toolbar .

Simplemente deberías agregar

 android:layout_marginTop="@dimen/abc_action_bar_default_height_material" 

a su diseño que está utilizando como cajón.

Esto ajustará automáticamente el cajón de navegación debajo de la barra de herramientas y también admite diferentes tamaños de pantalla.

Puede agregar layout_marginTop como este,

  

pero el cajón aparecerá como la capa superior de la barra de herramientas.


Aquí hay otra forma Choppy para agregarlo debajo de la barra de herramientas.

podría no ser el mejor pero funciona!

el resultado final se verá así

enter image description here

Si crea un proyecto como un proyecto de Cajón de navegación ( Navigation Drawer Activity ), le dará cuatro archivos XML en la creación en su carpeta de layout

  • app_bar_main
  • content_main
  • navigatin_main
  • activity_main

    enter image description here

cómo estos xmls están vinculados? la mayoría de las veces veo que se usa include tag

Tu actividad está vinculada con activity_main

  • activity_main tiene app_bar_main y navigation_view (cajón)
  • app_bar_main tiene la toolbar y content_main por defecto

ahora vamos a eliminar activity_main y establecer su contenido directamente en la barra de aplicaciones principal y usarlo como el diseño principal de Activity.

Para agregar el cajón en la barra de herramientas, agréguelo en android.support.design.widget.AppBarLayout porque contiene la barra de herramientas y debe estar en la parte superior.

aquí hay un ejemplo de app_bar_main.XML

  < ?xml version="1.0" encoding="utf-8"?>     //------ taken from activity_main // content main  // you need this padding     

ps puede configurar app_bar_main.XML para establecerContentView de su actividad, solo juegue hay muchas maneras;)

este es mi diseño y mi trabajo perfecto: activity_main:

 < ?xml version="1.0" encoding="utf-8"?>            

app_bar_main.xml:

 < ?xml version="1.0" encoding="utf-8"?>    

resultado: Abajo barra de herramientas

enter image description here

 < ?xml version="1.0" encoding="utf-8"?>     

Si está utilizando una barra de herramientas personalizada, utilice el diseño del cajón de esta manera.

       ....    

y si no está utilizando una barra de herramientas personalizada, entonces debe establecer el margen superior en el diseño del cajón.

 android:layout_marginTop ="?android:attr/actionBarSize" 

Una solución fácil y buena está configurada fitsSystemWindows=false para

 android.support.v4.widget.DrawerLayout 

que tiene id como

 android:id="@+id/drawer_layout" 

Y para navigationView establece layout_marginTop como ?attr/actionBarSize que obtendría el tamaño de la barra de acciones y lo establecería como margen

Aquí está el código completo de activity_main.xml que tiene ambos cambios listados arriba.