Estilo EditarTexto personalizado con appcompat v7

Creé una vista personalizada extendiendo EditText y especificó un estilo de atributo para cambiar el color de tinte de fondo.

public class CustomEditText extends EditText { public CustomEditText (Context context) { this(context, null); } public CustomEditText (Context context, AttributeSet attrs) { this(context, attrs, R.attr.customEditTextStyle); } public CustomEditText (Context context, AttributeSet attrs, int defStyle) { super(context, attrs, R.attr.customEditTextStyle); } // Some other code... } 

Luego agregué un estilo de atributo:

 <resources> <attr name="customEditTextStyle" format="reference" /> <resources> 

Estoy utilizando Theme.AppCompat en mi aplicación. Ya estoy sobreescribiendo colorPrimary, colorPrimaryDark y colorAccent.

 <style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/blue</item> <item name="colorPrimaryDark">@color/blue_dark</item> <item name="colorAccent">@color/blue_accent</item> <item name="customEditTextStyle">@style/CustomEditText</item> </style> <style name="CustomEditText" parent="Widget.AppCompat.EditText"> <item name="colorPrimary">@color/blue</item> <item name="colorPrimaryDark">@color/blue_dark</item> <item name="colorAccent">@color/blue_accent</item> </style> 

Los colores de fondo editText están funcionando bien, sin embargo, no puedo hacer lo mismo con el editText personalizado.

He intentado usar este código pero cambia el estado total, tal que todos los estados utilizan el mismo color. ( Https://stackoverflow.com/a/28433337 )

 editText.getBackground().setColorFilter(getResources().getColor(R.color.your_color), PorterDuff.Mode.SRC_ATOP); 

¿Hay una manera de aplicar el estilo AppCompat en la vista personalizada? ¿Es este problema de AppCompat o hice algo incorrecto en mi CustomEditText? Cualquier idea sería muy apreciada. ¡Gracias!

A partir de api 21 debe subclase AppCompatEdit texto. Lo mismo ocurre con todos los widgets compatibles. Utilice AppCompat * para obtener tinte y otras funciones de respaldo.

Solucionado el problema extendiendo android.support.v7.internal.widget.TintEditText.

AppCompat no admite el matiz de widget para las vistas personalizadas.

  • AppCompat 21 ActionBar ActionMode color
  • Utilice la pestaña con la nueva barra de herramientas (AppCompat v7-21)
  • AppCompat Snackbar no centrado en la tableta
  • Animación ActionBarDrawerToggle
  • ¿Dónde puedo encontrar las plantillas de Android Studio para la secuencia de comandos Activity and gradle?
  • Color de flecha de ActionBarDrawerToggle v7
  • El logotipo no se muestra en la barra de acciones, con AppCompat
  • ¿Cómo setContentView antes de super.onCreate mientras se utiliza AppCompat v22.1.0?
  • Appcompat v21 Elevación de la barra de herramientas pre-lollipop
  • AppCompat Color del título
  • El menú de la barra de herramientas menuitem es mayúscula
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.