Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo desmarcar los elementos seleccionados en la vista de navegación?

Sé que es posible resaltar un elemento de vista de navegación llamando a setCheckedItem() o devolver el valor verdadero en onNavigationItemSelected para mostrar el elemento como el elemento seleccionado, pero ¿Cómo puedo desmarcar los elementos onNavigationItemSelected de una vista de navegación?

  • No se puede publicar nada en LinkedIN usando linkedin-j
  • PopupWindow de Android / Diálogo
  • ActionBarSherlock + Maps + Loaders = java.lang.NoClassDefFoundError
  • LayoutManager para RecyclerView Grid con diferente ancho de celda
  • ¿Cómo mostrar Cuadro de diálogo de la clase que extiende Aplicación en android?
  • OnCreateViewHolder de RecyclerView.Adapter se llama dos veces o más, varias veces
  • Selección de un proyecto ORM para Android (nivel mínimo de API 7)
  • Reutilizar un atributo android estándar en mi vista personalizada
  • No se puede utilizar el teclado en el emulador de Android
  • SwipeRefreshLayout: Desplazar la animación de progreso
  • Android MediaPlayer parpadea al reproducir vídeos en Android 4.2.2
  • Qt streaming de llamadas de video móvil
  • 5 Solutions collect form web for “¿Cómo desmarcar los elementos seleccionados en la vista de navegación?”

    Esto desmarcará todos los elementos

      int size = mNavigationView.getMenu().size(); for (int i = 0; i < size; i++) { mNavigationView.getMenu().getItem(i).setChecked(false); } 

    Vi @arsent solución y le dio un intento, y de hecho hará lo que quieras, que es para desmarcar todos los elementos … pero, estaba teniendo un problema en el siguiente escenario:

    1. Seleccione la opción de menú 1 (usando NavigationView#setCheckedItem )
    2. Deseleccionar todos los elementos según la solución de @ arsent
    3. Vuelva a seleccionar el elemento de menú 1 (utilizando NavigationView#setCheckedItem )

    En este escenario, el elemento 1 no se marcará como marcado. Esto se debe a que internamente la vista de navegación mantiene un seguimiento del elemento seleccionado previamente en el paso 1, que no cambia en el paso 2, y simplemente salta el paso 3 porque el elemento seleccionado anteriormente es el mismo que el que estamos seleccionando ahora.

    Mi sugerencia (y una solución alternativa) para evitar esto es simplemente tener un elemento ficticio invisible y usar NavigationView#setCheckedItem para seleccionar ese elemento siempre que quieras NavigationView#setCheckedItem selección de todo, como por ejemplo

     <item android:id="@+id/menu_none" android:title="" android:visible="false"/> 

    Para desmarcar todo solo hazlo

     mNavigationView.setCheckedItem(R.id.menu_none); 

    Para desmarcar todos los elementos de SubMenu incluidos los elementos de SubMenu , debe utilizar la recursión:

      private void unCheckAllMenuItems(@NonNull final Menu menu) { int size = menu.size(); for (int i = 0; i < size; i++) { final MenuItem item = menu.getItem(i); if(item.hasSubMenu()) { // Un check sub menu items unCheckAllMenuItems(item.getSubMenu()); } else { item.setChecked(false); } } } 

    Llame al método anterior para desmarcar todos los elementos, como a continuación –

     unCheckAllMenuItems(navigationView.getMenu()); 

    Las soluciones de Joao no funcionaron para mí como totalmente esperado. Esto conduciría a un espacio en blanco de la vista de elemento sin marcar en mi Navegación.

    Sólo asegúrese de establecer la vista como desaparecido:

     <item android:id="@+id/your_menu_item_id_to_hide" android:title="" android:visible="false"/> bottomNavigationView.getMenu().findItem(R.id.your_menu_item_id_to_hide).setChecked(true); bottomNavigationView.findViewById(R.id.your_menu_item_id_to_hide).setVisibility(View.GONE); 

    La solución Arsent no es necesaria en este caso.

    Todo lo que necesitas hacer es rodear tus grupos de esta manera:

      <group> <group android:id="@+id/grp1"> <item android:id="@+id/nav_profile" android:icon="@drawable/ic_account_circle_24dp" android:title="@string/profile" /> </group> <group android:id="@+id/grp2"> <item android:id="@+id/nav_settings" android:icon="@drawable/ic_settings_24dp" android:title="@string/settings" /> <item android:id="@+id/nav_help" android:icon="@drawable/topic_help" android:title="@string/help_feedback" /> </group> </group> 

    No es necesario hacer bucle de elementos de menú con la sobrecarga añadida!

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.