Android Navigation Drawer en la parte superior de ActionBar

Intento que el cajón de navegación pase sobre la barra de acción cuando se deslizó hacia la derecha como esta aplicación: [Eliminado]

Este es el diseño de mi actividad principal:

   ...    

Algunas otras preguntas sobre stackoverflow son similares, como esta pregunta, pero se recomiendan todas las respuestas para usar el menú deslizante lib. Pero esta aplicación todavía usan android.support.v4.widget.DrawerLayout y tienen éxito. No me preguntes cómo sé que usan el cajón de navegación estándar, pero estoy seguro de ello.

Sería realmente apreciado por sus ayudas.


AQUÍ ESTÁ LA SOLUCIÓN FINAL : muchas gracias a @Peter Cai ESTO FUNCIONA PERFECTAMENTE. https://github.com/lemycanh/DrawerOnTopActionBar

La captura de pantallaTranslúcido en KitKat

Tengo un pequeño “truco” aprendido de https://github.com/jfeinstein10/SlidingMenu para implementar el efecto que requirió.

Solo necesita eliminar el primer elemento secundario de la vista de decoración de la ventana y agregar el primer elemento secundario a la vista de contenido de la ventana. Después de eso, solo necesita agregar el cajón a la vista de decoración de la ventana.

A continuación hay algunos pasos detallados para que hagas eso.

Primero, crea un xml llamado “decor.xml” o cualquier cosa que desees. Solo coloque el DrawerLayout y el cajón. El “FrameLayout” a continuación es solo un contenedor. Lo usaremos para envolver el contenido de su actividad.

      

y luego elimine DrawerLayout en su diseño principal. Ahora el diseño de su actividad principal debería verse como

  ...  

suponemos que el diseño de la actividad principal se llama “main.xml”.

en su actividad principal, escriba lo siguiente:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Inflate the "decor.xml" LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); DrawerLayout drawer = (DrawerLayout) inflater.inflate(R.layout.decor, null); // "null" is important. // HACK: "steal" the first child of decor view ViewGroup decor = (ViewGroup) getWindow().getDecorView(); View child = decor.getChildAt(0); decor.removeView(child); FrameLayout container = (FrameLayout) drawer.findViewById(R.id.container); // This is the container we defined just now. container.addView(child); // Make the drawer replace the first child decor.addView(drawer); // Do what you want to do....... } 

Ahora tiene un DrawerLayout que puede deslizarse sobre ActionBar. Pero es posible que lo encuentre cubierto por la barra de estado. Es posible que deba agregar un paddingTop al cajón para solucionarlo.

ACTUALIZACIÓN: cómo superponer la barra de acciones con el cajón de navegación. (Con la nueva barra de herramientas) Úselos en sus dependencias en su build.gradle

 compile 'com.android.support:appcompat-v7:21.0.0' compile 'com.android.support:support-v4:21.0.0' 

Esto como su drawerlayout

          

Cree un nuevo archivo toolbar.xml en su carpeta de diseño.

   

Vaya a su actividad que extiende el cajón de navegación. y agregue esto después de SetContentView ()

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); 

No olvides extender tu tema NoActionBar en tu carpeta de valores.

  

He publicado un truco que hace esto posible en versiones anteriores de Android L. Puedes encontrar mi solución en esta publicación . Espero que pueda ser útil para alguien.

Si no quieres usar una lib o este truco:

  1. Extienda “Theme.AppCompat.NoActionBar”
  2. Mueva el primer Elemento de su DrawerLayout a LinearLayout.
  3. Agregue una barra de herramientas a este LinearLayout.

       
  4. en Activity add following line after setContentView

     setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); 
  5. ahora debería funcionar