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:
- Utilizar smoothScrollTo en Fragmento
- Color de fondo ondulado de Android
- ¿Puedo abrir el diseño del cajón con animación mediante programación?
- La mejor manera de implementar un cajón de desplazamiento de navegación
- ¿Cómo puedo hacer que DrawerLayout se muestre debajo de la barra de herramientas?
<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
Realmente aprecio cualquier comentario. Gracias.
- Cambiar los elementos del cajón de navegación dentro del fragmento
- InflateException en la llamada al método inflater.inflate ()
- Android.widget.RelativeLayout no se puede convertir en android.support.v7.widget.RecyclerView
- Android: Fragmento de preferencia con un fragmento de cajón de navegación
- Cómo cambiar la lista de color del elemento seleccionado en el cajón de navidgation?
- Agregar fragmento a la actividad de NavigationDrawer
- Mover el sherlock de la barra de acción con el menú de navegación del cajón
- Adaptador personalizado para cajón de navegación
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 lograr la estructura modular de subcomponentes de aplicaciones en Android?
- Android: ¿Cómo resolver Bitmap java.lang.OutOfMemoryError?