studio para navegacion menus inflar hacer emergente desplegable configuracion como android menu navigation navigation-drawer android-menu
un vistazo.

para - menu principal android



¿Cómo crear un subnivel en el menú de navegación en Android? (4)

Una idea que tuve fue hacer que cada elemento del menú abriera otro fragmento con una transición. Debajo, el panel de navegación es solo una vista de lista dentro de un fragmento, ¿verdad? por lo tanto, inicie otro fragmento del adaptador de la lista de cajones de navegación.

Me gustaría lograr el mismo efecto de esta manera:

http://mmenu.frebsite.nl/

cuando haces clic en document / tutorial / support, el menú irá al menú de subnivel. No es una vista de lista expansible ni un elemento de submenú debajo del título del menú principal.

He intentado crear el menú usando una vista de navegación como esta:

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:checkableBehavior="single"> <item android:id="@+id/nav_home" android:icon="@drawable/ic_event" android:title="Home" /> <item android:id="@+id/nav_profile" android:icon="@drawable/ic_dashboard" android:title="Perfil" /> </group> <item android:title="More Options"> <menu> <item android:icon="@drawable/ic_forum" android:title="Forum" /> <item android:icon="@drawable/ic_headset" android:title="Headset" /> </menu> </item> </menu>

El problema es que no va al subnivel cuando hago clic en el título del menú principal. ¿Cómo lograr eso en Android? Muchas gracias


Creo que archivé el efecto deseado:

La idea detrás es clear() menú existente y volver a inflateMenu cada vez que el usuario haga clic en el elemento del menú, lo que debería conducir a un submenú. (Y al volver - haz más o menos lo mismo)

Como menú raíz ( activity_main_drawer.xml ), utilicé esto:

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:checkableBehavior="single"> <item android:id="@+id/action_item1" android:icon="@drawable/ic_menu_camera" android:title="Item 1" /> <item android:id="@+id/action_expand" android:icon="@drawable/ic_menu_gallery" android:title="Sub Menu to expand" /> </group> </menu>

Este es un submenú ( activity_submenu_drawer.xm ):

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="Go Back" android:icon="@drawable/ic_back" android:id="@+id/back_to_main"/> <item android:id="@+id/sub_item1" android:icon="@drawable/ic_menu_share" android:title="Subitem 1" /> <item android:id="@+id/sub_item2" android:icon="@drawable/ic_menu_send" android:title="Subitem 2" /> </menu>

MainActivity.xml :

<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:openDrawer="start"> <include layout="@layout/app_bar_main" android:layout_width="match_parent" android:layout_height="match_parent" /> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" /> </android.support.v4.widget.DrawerLayout>

Y aquí está la clase MainActivity (que hace el cambio):

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { NavigationView navigationView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ..... navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.inflateMenu(R.menu.activity_main_drawer); navigationView.setNavigationItemSelectedListener(this); } .... @SuppressWarnings("StatementWithEmptyBody") @Override public boolean onNavigationItemSelected(MenuItem item) { // Handle navigation view item clicks here. int id = item.getItemId(); if (id == R.id.action_expand) { navigationView.getMenu().clear(); navigationView.inflateMenu(R.menu.activity_submenu_drawer); } else if (id == R.id.back_to_main) { navigationView.getMenu().clear(); navigationView.inflateMenu(R.menu.activity_main_drawer); } return true; } }

Subí mi prueba-proyecto a mi Dropbox. No dudes en echarle un vistazo.

Espero que ayude



si enfrento este problema luego utilizaré el cajón de navegación del encabezado completo (diseñado por el vestuario) para la aplicación. y agregue una vista de lista ampliable u otro control animado u otro por qué es mi requisito real.

las ventajas de usar navegación personalizada. es que podemos establecer el diseño y la funcionalidad que necesitamos. si la lista de menú es simple, entonces el enfoque de batido es que use navegación por defecto. cajón como se define en el soporte de diseño lib.