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


Icono de elemento del cajón de navegación que no muestra el color original

Estoy tratando de mostrar un icono junto a un elemento dentro de mi menú para mi cajón de navegación, pero por alguna razón el icono siempre aparece en gris en lugar del color original (marrón). ¿Hay alguna manera de evitar que esto suceda para mostrar el color original del icono?

MainActivity.java

  • El uso de buildToolsVersion 23 falla porque varios archivos dex definen 'AnimRes'
  • Error después de actualizar la AppCompat de Android.Support Library v7 a la versión 21.0.3
  • Error al utilizar elementos de la biblioteca de soporte de diseño de Android
  • Enums y la anotación android intDef
  • Android - support libraries 23.2.0 hacer que la aplicación se bloquee
  • Android DialogFragment onViewCreated no se llama
  • public class MainActivity extends AppCompatActivity { private DrawerLayout mDrawerLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); if (navigationView != null) { setupDrawerContent(navigationView); } } private void setupDrawerContent(NavigationView navigationView) { navigationView.setNavigationItemSelectedListener( new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem menuItem) { mDrawerLayout.closeDrawers(); return true; } }); } } 

    Drawer_view.xml

     <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="Section"> <menu> <item android:id="@+id/navigation_item_1" android:icon="@drawable/ic_browncircle" android:title="Sub item 1" /> </menu> </item> </menu> 

    Introduzca aquí la descripción de la imagen

  • Cómo almacenar en caché los mapas de bits en la memoria nativa
  • ¿Cuáles son los beneficios específicos de usar DI en Android?
  • Cómo iniciar un proyecto de Android con código de ejemplo descargado
  • SetImageResource de una cadena
  • Diseño relativo alignParentLeft vs alignParentStart
  • Android: abre de forma programática el cuadro de diálogo "Aplicaciones recientes"
  • 5 Solutions collect form web for “Icono de elemento del cajón de navegación que no muestra el color original”

    He encontrado la respuesta aquí: https://stackoverflow.com/a/30632980/875249

    Para evitar el enlace es bastante sencillo:

      mNavigationView.setItemIconTintList(null); 

    Esto deshabilita todos los tonos basados ​​en estados, pero también puede especificar su propia lista. ¡Funciono muy bien para mi!

    Aquí es donde puede obtener los detalles sobre la creación de una lista de estado de color, pero su bastante simple también: http://developer.android.com/reference/android/content/res/ColorStateList.html

      <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:color="@color/primary" /> <item android:state_checked="false" android:color="@android:color/white" /> </selector> 

    Utilizar

      mNavigationView.setItemIconTintList(null); 

    es lo correcto. También si todos sus iconos en un esquema de color (i tenía todo blanco) puede configurar a través de archivo xml – app: itemIconTint = "@ android: color / blanco"

    Mi caso:

     <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:clickable="true" app:headerLayout="@layout/nav_header_main" app:itemTextColor="@android:color/white" app:menu="@menu/activity_main_drawer" android:background="@android:color/black" app:itemIconTint="@android:color/white" /> 

    He intentado algo similar en una de mis aplicaciones. Y sí, parece que el color del icono no cambia. Pero he logrado hacer con otra solución. Aquí está mi ic_browncircle.xml

     <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" android:tint="@color/brown" > <size android:height="3dp" android:width="3dp" /> <solid android:color="@color/brown"/> </shape> 

    Que creo que es algo similar a usted, pero no tiene ningún efecto y no cambia el color.

    Así que lo que hice fue esto.

     navigationView.getMenu() .findItem(R.id. navigation_item_1) .getIcon() .setColorFilter(Color.parseColor("#b69260"), PorterDuff.Mode.SRC_ATOP); 

    Y parece que funciona. Aquí está el resultado.

    Introduzca aquí la descripción de la imagen

    Puede probar con un dibujante tintado, no está seguro si funciona debajo de 5.0.

    Cree un dibujable y agregue el código siguiente.

     <?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/ic_browncircle" android:tint="@color/brownColor"/> 

    Y luego cambia el elemento del menú dibujable al que acabas de crear. Si eso no funciona, entonces no estoy seguro de ninguna otra solución. Puede probar esta biblioteca: https://github.com/mikepenz/MaterialDrawer Lo uso mucho en mis proyectos.

    Sólo tiene que añadir una línea en xml

    app:itemIconTint="@color/white"

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