No se puede agregar el color principal del atributo en android drawable xml

Tengo mi tema definido como

<style name="AppThemeRed" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimaryRed</item> <item name="colorPrimaryDark">@color/colorPrimaryDarkRed</item> <item name="colorAccent">@color/colorAccentRed</item> </style> 

En mis diseños XML, estoy haciendo

 <android.support.design.widget.AppBarLayout android:background="?attr/colorPrimary" android:id="@+id/topBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> 

Cada vez que cambio algún tema, los cambios de colorPrimary

Sin embargo, si tengo la misma cosa añadida por ejemplo

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape android:shape="rectangle"> <solid android:color="?attr/colorPrimary" /> <corners android:radius="5dp"/> </shape> </item> <item> <shape android:shape="rectangle"> <solid android:color="?attr/colorPrimary" /> <corners android:radius="5dp"/> </shape> </item> </selector> 

Se bloquea con incapaz de inflar vista, la vista que tiene el fondo establecido como @drawabe/xxxx

¿Cómo puedo definir el atributo de color del tema en mi XML dibujable

Solo reemplaza

 android:color="?attr/colorPrimary" 

a…

 android:color="@color/colorPrimaryRed" 

Actualizar

No es posible hacer referencia a un atributo en un xml dibujable debajo de la API 21. Con el fin de hacer que su tema que necesita:

Cree un xml dibujable por tema. Incluya el color necesario en usted dibujable directamente con la etiqueta @color o el formato #RGB.

Haz un atributo para tu drawable en attrs.xml.

 <?xml version="1.0" encoding="utf-8"?> <resources> <!-- Attributes must be lowercase as we want to use them for drawables --> <attr name="my_drawable" format="reference" /> </resources> 

Agregue su drawable a su theme.xml.

 <style name="MyTheme" parent="@android:style/Theme.NoTitleBar"> <item name="my_drawable">@drawable/my_drawable</item> </style> 

Haga referencia a su dibujable en su diseño utilizando su atributo.

 <TextView android:background="?my_drawable" /> 

Esto parece estar soportado en API 21+. Debajo de eso no se puede hacer referencia a un atributo en drawable. https://code.google.com/p/android/issues/detail?id=26251 .

Esto podría ayudar a soluciones alternativas: ¿Cómo hacer referencia a los atributos de estilo desde un dibujable?

Puedes intentar por favor

 <solid android:color="@android:attr/colorPrimary"/> 

en lugar de

 <solid android:color="?attr/colorPrimary" /> 

Puedes usar :-

 <solid android:color="@android:color/holo_orange_dark" /> 
  • No hay error aún Android Studio dice que "no se encontraron pruebas"
  • Escribir datos en un archivo de texto remoto en android
  • Cambiar el posicionamiento del índice en InputStream
  • Bouncycastle codificación de la curva elíptica en Android
  • NullPointerException en la reflexión durante el arranque de Robolectric - cualquier sugerencias?
  • ¿Cómo transmitir vídeo directamente entre dvr (servidor) y el teléfono móvil con android (cliente)?
  • ¿Mis avisos de tarjeta de crédito no siempre descartan cuando se pasa a la izquierda oa la derecha?
  • Android dinámicamente añadir elemento de la disposición xml
  • Opengl es 2.0 dibujar superposición de mapa de bits en vídeo
  • Accesos directos de pantalla de inicio con iconos
  • Pasando enums a través de interfaces de ayuda
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.