with studio fragments activity android gmail navigation-drawer tablet material-design

android - studio - Implementando Gmail Tablet como Navigation Drawer



navigation drawer android kotlin (2)

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

(Utilice MiniDrawer de esta biblioteca)

Estaba buscando en el diseño de la tableta de la aplicación Gmail. En esa aplicación del Navigation Drawer es diferente de los demás. He adjuntado la imagen para su referencia.

Y también cuando amplío el cajón, debería suceder como el comportamiento normal del cajón de navegación.

Me gustaría implementar de la misma manera. Estaba buscando pero solo encontré este link que no es tan útil. ¿Alguien puede darme sugerencias como puedo hacer esto?


Puede usar un SlidingPaneLayout con un margen en el panel principal y un escucha 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 parciales y completos 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 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); } };

Además, oculte 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