viste vestirse ventajas ropa rojo roja que psicologico porque por para mujeres mujer llama las efecto color atencion java android xml android-support-library

java - vestirse - El ícono del elemento del cajón de navegación no muestra el color original



ropa roja para mujer (8)

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 forma 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

<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>


Agrega esto

android:tint="@color/colorPrimary"


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

Para evitar el enlace es bastante sencillo:

mNavigationView.setItemIconTintList(null);

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

Aquí es donde puede obtener los 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

<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>


He intentado algo similar en una de mis aplicaciones. Y sí, parece que el color del icono no cambia. Pero me las arreglé para 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>

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 estar funcionando. Aquí está el resultado.


Puede intentar usar un dibujo teñido, no estoy seguro si funciona por debajo de 5.0.

Crea un dibujo y agrega el siguiente código.

<?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 cambie su elemento de menú dibujable al que acaba de crear. Si eso no funciona, entonces no estoy seguro de ninguna otra solución. Puedes probar esta biblioteca: https://github.com/mikepenz/MaterialDrawer La uso mucho en mis proyectos.


Si crea un proyecto con el cajón de navegación que proporcionó Android Studio . En su clase de actividad principal, simplemente puede agregar esta línea de código navigationView.setItemIconTintList(null); a su método onCreate . Me gusta esto;

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); navigationView.setItemIconTintList(null); // <----- HERE setupDrawerContent(navigationView);


Solo agregue una línea en xml

app:itemIconTint="@color/white"


Utilizar

mNavigationView.setItemIconTintList(null);

es lo correcto. Además, si todos sus iconos están en un esquema de color (tenía todo blanco), puede configurarlo a través del archivo xml - app: itemIconTint = "@ android: color / white"

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" />


De alguna manera, este código no funciona MainActivity.java

NavigationView.setItemIconTintList(null); // not working

para que puedas usarlo.

MainActivity.java

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); navigationView.setItemIconTintList(null); // <-- HERE add this code for icon color