Implementación de Gmail Tablet como Gaveta de navegación

Estaba buscando en el diseño de la tableta de la aplicación de Gmail. En ese Navigation Drawer implementación es diferente de otras. He adjuntado la imagen para su referencia.

Introduzca aquí la descripción de la imagen

Y también cuando expulso el cajón debe suceder como comportamiento normal del cajón de la navegación.

Introduzca aquí la descripción de la imagen

Me gustaría implementar de la misma manera. Estaba buscando, pero encontré sólo este enlace que no es tan útil. ¿Puede alguien darme sugerencias de cómo puedo hacer esto!

Puede usar un SlidingPaneLayout con un margen en el panel principal y un oyente personalizado para el desvanecimiento cruzado.

 <com.sqisland.android.CrossFadeSlidingPaneLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/sliding_pane_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:layout_width="240dp" android:layout_height="match_parent" android:background="@color/purple"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="@string/full"/> <TextView android:layout_width="64dp" android:layout_height="match_parent" android:background="@color/blue" android:text="@string/partial"/> </FrameLayout> <TextView android:layout_width="400dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginLeft="64dp" android:background="@color/light_blue" android:text="@string/pane_2"/> </com.sqisland.android.CrossFadeSlidingPaneLayout> 

Subclase SlidingPaneLayout y encuentre los paneles parcial y completo en onFinishInflate :

 protected void onFinishInflate() { super.onFinishInflate(); if (getChildCount() < 1) { return; } View panel = getChildAt(0); if (!(panel instanceof ViewGroup)) { return; } ViewGroup viewGroup = (ViewGroup) panel; if (viewGroup.getChildCount() != 2) { return; } fullView = viewGroup.getChildAt(0); partialView = viewGroup.getChildAt(1); super.setPanelSlideListener(crossFadeListener); } 

Cambie el alfa del panel completo y el panel parcial con un oyente:

 private SimplePanelSlideListener crossFadeListener = new SimplePanelSlideListener() { public void onPanelSlide(View panel, float slideOffset) { super.onPanelSlide(panel, slideOffset); if (partialView == null || fullView == null) { return; } partialView.setVisibility(isOpen() ? View.GONE : VISIBLE); partialView.setAlpha(1 - slideOffset); fullView.setAlpha(slideOffset); } }; 

También, ocultar el panel parcial cuando se abre el diseño.

 protected void onLayout( boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); if (partialView != null) { partialView.setVisibility(isOpen() ? View.GONE : VISIBLE); } } 

Más información: http://blog.sqisland.com/2015/01/partial-slidingpanelayout.html

Hay una biblioteca impresionante para este https://github.com/mikepenz/MaterialDrawer

(Utilice MiniDrawer de esta biblioteca)

  • Android - mount: Sistema de archivos de sólo lectura
  • Herramienta de visualización para móviles (tableta)
  • Mi aplicación no aparece en las tablas
  • Evitar las descargas de la aplicación de la tableta
  • El fondo xml no cambia cuando uso la tableta
  • Establecer configuración regional que no funciona en tablets
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.