El color del elemento de menú NavigationView no cambia en API 15
Soy nuevo en StackOverFlow y esta es mi primera pregunta aquí. Perdóneme si cometo algún error. Tengo un NavigationView
dentro de DrawerLayout
que parece algo así
DrawerLayout
- android.view.InflateException error inflar clase
- Cadena de resultados de Android HttpUrlConnection truncada
- Android: uso del diseño XML desde el almacenamiento interno
- Spinner Error al establecer setOnItemSelectedListener
- Cómo poner un botón entre dos diseños
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:openDrawer="start"> <include layout="@layout/app_bar_home_screen" android:layout_width="match_parent" android:layout_height="match_parent" /> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="left" android:fitsSystemWindows="true" android:background="@android:color/white" app:itemBackground="@drawable/nav_item_selector" app:itemIconTint="@color/nav_icon_color" app:itemTextColor="@color/nav_text_color" app:headerLayout="@layout/nav_header_home_screen" app:menu="@menu/activity_home_screen_drawer"> </android.support.design.widget.NavigationView> </android.support.v4.widget.DrawerLayout>
Abajo están mis clases nav_item_selector, nav_icon_color, nav_text_color
Nav_item_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/fb_color" android:state_pressed="true"/> <item android:drawable="@android:color/white" android:state_pressed="false"/> </selector>
Nav_icon_color.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@android:color/white" android:state_pressed="true" /> <item android:color="#2e9f68" android:state_pressed="false" /> </selector>
Nav_text_color.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="#b5edd2" android:state_pressed="true" /> <item android:color="#222222" android:state_pressed="false" /> </selector>
Esto está funcionando bien para API> 15, pero en API 15 sólo itemBackground
está trabajando, pero en itemIconTint
y itemTextColor
statePressed
no funciona. No sé por qué. También intenté establecer esto mediante programación en mi actividad
Actividad principal
navigationView = (NavigationView) findViewById(R.id.nav_view); int[][] states = new int[][] { new int[] { android.R.attr.state_enabled}, // enabled new int[] {-android.R.attr.state_enabled}, // disabled new int[] {-android.R.attr.state_checked}, // unchecked new int[] { android.R.attr.state_pressed} // pressed }; int[] colors = new int[] { Color.WHITE, Color.RED, Color.GREEN, Color.BLUE }; navigationView.setItemTextColor(new ColorStateList(states,colors));
A continuación se presentan las capturas de pantalla para API 15 y API 19. También he probado esto en API 16 y estaba funcionando bien.
No funciona en la API 15:
Trabajo en API> 15:
- Cómo cargar el archivo xml del animador en Android programatically?
- Android estilo Recopilación de recursos (aapt) fallando: Tabla de recursos no válidos: tamaño de encabezado 0xc
- Crear componente personalizado basado en LinearLayout, declarando el diseño en XML
- ¿Cómo oriento la resolución 1280x720 WXGA720 (como el nuevo Galaxy Nexus) en las carpetas de diseño Android?
- Android Switch Widget: Configuración de android: la pista hace que el pulgar y la pista no se muestren
- ¿El complemento ADT crea automáticamente un archivo de construcción de hormigas?
- Android: conflicto de ID cuando se crean 3 pestañas o más
- La vista de desplazamiento de Android es demasiado larga
- Cómo obtener datos del escáner de código de barras en Firemonkey / Delphi
- ¿Cómo utilizar Rx para gestionar múltiples observadores con el fin de mantener una sola conexión abierta a un servicio?