Android Design Navigation Drawer – ¿Cómo agregar un conmutador en el navegador xml?

Estoy usando el nuevo diseño de navegación de Android. Quiero agregar un interruptor en el cajón. ¿Hay un lejos para implementar esto?

Este es el menú xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:id="@+id/nav_view_menu_group_1" android:checkableBehavior="single"> <item android:id="@+id/nav_view_menu_item_myschedule" android:icon="@drawable/ic_navview_my_schedule" android:title="@string/navview_menu_item_myschedule" android:titleCondensed="@string/navview_menu_item_myschedule" /> <item android:id="@+id/nav_view_menu_item_iolive" android:icon="@drawable/ic_navview_play_circle_fill" android:title="@string/navview_menu_item_iolive" android:titleCondensed="@string/navview_menu_item_iolive" android:visible="false"/> <item android:id="@+id/nav_view_menu_item_explore" android:icon="@drawable/ic_navview_explore" android:title="@string/navview_menu_item_explore" android:titleCondensed="@string/navview_menu_item_explore" /> <item android:id="@+id/nav_view_menu_item_map" android:icon="@drawable/ic_navview_map" android:title="@string/navview_menu_item_map" android:titleCondensed="@string/navview_menu_item_map" android:visible="false"/> </group> </menu> 

¿Cómo puedo cambiar un <item> para ser switch:

 <Switch android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Switch" android:id="@+id/switch1" android:layout_gravity="center_horizontal" /> 

Actualmente estoy usando el diseño predeterminado:

 <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:menu="@menu/activity_main_drawer" /> 

Al igual que esta imagen en la notificación de Android http://i.stack.imgur.com/M9nD7.png Introduzca aquí la descripción de la imagen

Realmente aprecio cualquier comentario. Gracias.

Una manera que he encontrado de hacer esto sería utilizar setActionView en el menuItem que usted desea:

  mNavigationView.getMenu().findItem(R.id.nav_connect) .setActionView(new Switch(this)); // To set whether switch is on/off use: ((Switch) mNavigationView.getMenu().findItem(R.id.nav_connect).getActionView()).setChecked(true); 

Probablemente también desee un oyente de clics para cambiar el estado del Switch:

  mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem menuItem) { switch (menuItem.getItemId()) { case R.id.nav_connect: ((Switch) menuItem.getActionView()).toggle(); return true; } } } 

No lo he probado, pero probablemente podrías usar android:actionLayout="@layout/switch_layout" en xml y apuntar a un diseño personalizado que hayas creado.

También podría intentar usar un ActionProvider que podría ofrecer un poco más de robustez. No he probado este método bien.

Podemos hacerlo de la siguiente manera

 @Override public boolean onPrepareOptionsMenu(Menu menu) { //Get a reference to your item by id MenuItem item = menu.findItem(R.id.menu_pick_color); //Here, you get access to the view of your item, in this case, the layout of the item has a FrameLayout as root view but you can change it to whatever you use FrameLayout rootView = (FrameLayout)item.getActionView(); //Then you access to your control by finding it in the rootView YourControlClass control = (YourControlClass) rootView.findViewById(R.id.control_id); //And from here you can do whatever you want with your control return true; } 
  • ¿Cómo eliminar fragmento el fragmento reemplazado en la transición de fragmentos?
  • Androide. ¿Cómo puedo deslizar NavigationDrawer de la biblioteca de pruebas Espresso?
  • Android - Cómo cambiar fragmentos en el cajón de navegación
  • No se puede bloquear el evento de clic de botón de inicio de la barra de herramientas
  • No se puede agregar pestañas dentro de Fragmento de cajón de navegación Android
  • Cajón de navegación de derecha a izquierda con v7 ActionBarDrawerToggle
  • ¿Cómo añado iconos a la plantilla de gavetas de navegación de Android Studio?
  • Cajón de navegación Cambia el fondo mientras se desplaza
  • Cajón de navegación cambio de color
  • Añadir 2 listview en el cajón de navegación, sólo uno funciona
  • Adaptar chrisbanes ActionBar-PullToRefresh a fragmentos (NavigationDrawer)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.