android - studio - ¿Cómo agregar valor de notificación para el elemento en NavigationView para Material Design Drawer?
navigation view (5)
Mi pregunta es muy simple, ¿cómo agregar un derecho de valor de notificación del elemento en NavigationView para Material Design Drawer de esa manera?
¿Hay alguna propiedad en los elementos del menú para definir el cajón?
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
android:checkableBehavior="single">
<item
android:id="@+id/drawer_home"
android:checked="true"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/home"/>
<item
android:id="@+id/drawer_favourite"
android:icon="@drawable/ic_favorite_black_24dp"
android:title="@string/favourite"/>
...
<item
android:id="@+id/drawer_settings"
android:icon="@drawable/ic_settings_black_24dp"
android:title="@string/settings"/>
</group>
</menu>
A partir de algunas investigaciones, he descubierto que no, no hay una manera real de agregar las notificaciones al cajón. Sin embargo, el ejemplo que se muestra en el tutorial de Creación de un cajón de navegación en Desarrolladores muestra cómo forzar un nuevo dibujo cada vez que se abre (y también cómo implementarlo con las hojas del Menú XML). No entra en detalles sobre cómo agregar las notificaciones, pero hay otras fuentes para eso.
Este tutorial es otro tutorial de "cómo hacer un cajón de navegación" con la ventaja de detalles exactos sobre cómo se adaptaron los adaptadores ListView para que se ajusten a un botón de notificación. Creo que esto es más que probable lo que buscas.
¡Buena suerte! Espero que eso ayude.
Debes verificar exactamente cómo se hizo en el github del proyecto original:
https://github.com/rudsonlive/NavigationDrawer-MaterialDesign/ https://play.google.com/store/apps/details?id=br.liveo.navigationliveo
Básicamente, creas una vista personalizada para las líneas de ListView y las actualizas en consecuencia.
Esto es posible con NavigationView
desde la versión 23 de AppCompat-V7 usando vistas de acción. 1. Cree un diseño para el contador, por ejemplo, nav_drawer_counter.xml
:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:textColor="@color/colorPrimary"/>
Agregue una referencia a él desde cada elemento para el que desee mostrar un valor de contador en su
menu/nav_drawer.xml
(asegúrese de usar el espacio de nombres de laapp
):<item ... app:actionLayout="@layout/activity_main_nav_drawer_menu_counter" />
Agregue un método para establecer un valor en
TextView
por ejemplo:@Override protected void onCreate(Bundle savedInstanceState) { .... setNavItemCount(R.id.nav_notifications, 10); } private void setNavItemCount(@IdRes int itemId, int count) { TextView view = (TextView) navigationView.getMenu().findItem(itemId).getActionView(); view.setText(count > 0 ? String.valueOf(count) : null); }
Oh sí ... Puedes cambiar ese valor de contador.
A partir de las imágenes proporcionadas por usted se ve en vivo, está utilizando el Cajón de navegación de diseño de materiales de Rudson Lima.
En su biblioteca hay una función public void setNewCounterValue(int drawerItemPosition, int counterValue);
Dentro de la clase NavigationLiveo
.
Espero que utilices su objeto correctamente para llamar a esta función.
La mejor de las suertes... :-)
Podrías usar una biblioteca para esto. Prueba MaterialNavigationDrawer o MaterialDrawer