El ícono del ícono del cajón de navegación no muestra el color original

Estoy tratando de mostrar un ícono al lado de 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

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

        

enter image description here

Encontré la respuesta aquí: https://stackoverflow.com/a/30632980/875249

Para evitar el enlace es bastante sencillo:

  mNavigationView.setItemIconTintList(null); 

Esto desactiva todo el tinte basado en el estado, pero también puede especificar su propia lista. ¡Funciono muy bien para mi!

Aquí es donde puede obtener detalles sobre cómo crear una lista de estados de color, pero también es bastante simple: http://developer.android.com/reference/android/content/res/ColorStateList.html

      

Utilizar

  mNavigationView.setItemIconTintList(null); 

es lo correcto. Además, si todos sus icons en una combinación de colores (tenía todo en blanco) puede configurar a través de un archivo xml – app: itemIconTint = “@ android: color / white”

Mi caso:

  

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

      

Lo cual creo que es algo similar a ti, pero no tiene ningún efecto y no cambia el color.

Entonces lo que hice es esto.

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

Y parece funcionar. Este es el resultado.

enter image description here

Puedes intentar usar un dibujante tintado, no estoy seguro si funciona debajo de 5.0.

Cree un dibujable y agregue el siguiente código.

   

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

Solo agrega una línea en xml

app:itemIconTint="@color/white"