Cómo cambiar el color de etiqueta flotante de TextInputLayout

Con referencia al nuevo TextInputLayout lanzado por Google, ¿cómo puedo cambiar el color del texto de la etiqueta flotante?

Establecer colorControlNormal , colorControlActivated , colorControlHighLight en estilos no ayuda.

Esto es lo que tengo ahora:

Esto es lo que tengo ahora

Pruebe el código siguiente. Funciona en estado normal

     

En la carpeta de estilos Código TextLabel

   

Establecer como tema principal de la aplicación, solo funciona resaltar solo estado

  @color/Color Name 

Actualizar:

UnsupportedOperationException: no se puede convertir a color: type = 0x2 en api 16 o inferior

Solución

     

Encontró la respuesta, use el atributo android.support.design:hintTextAppearance para establecer su propia apariencia de etiqueta flotante.

Ejemplo:

    

No necesita usar android:theme="@style/TextInputLayoutTheme" para cambiar el color de la etiqueta flotante, ya que afectará a todo el tema para el pequeño TextView utilizado como etiqueta. En su lugar, podría usar la app:hintTextAppearance="@style/TextInputLayout.HintText" donde:

  

Avísame si la solución funciona 🙂

Bien, entonces, encontré esta respuesta muy útil y gracias a todas las personas que contribuyeron. Solo para agregar algo, sin embargo. La respuesta aceptada es, de hecho, la respuesta correcta … PERO … en mi caso, estaba buscando implementar el mensaje de error debajo del widget EditText con la app:errorEnabled="true" y esta única línea me dificultó la vida. parece que esto anula el tema que elegí para android.support.design.widget.TextInputLayout , que tiene un color de texto diferente definido por android:textColorPrimary .

Al final, decidí aplicar un color de texto directamente al widget EditText . Mi código se ve así:

styles.xml

 @color/my_yellow @color/my_yellow_dark @color/my_yellow_dark @android:color/white @color/dark_gray @color/light_gray true false @color/dark_gray @android:color/black @android:color/white 

Y mi widget:

    

Ahora muestra el color de texto negro en lugar del textColorPrimary blanco.

Le sugiero que cree un tema de estilo para TextInputLayout y cambie solo el color de acento. Establezca el tema principal de la aplicación como principal:

    

En la última versión de la biblioteca de soporte (23.0.0+), TextInputLayout toma el siguiente atributo en XML para editar el color de la etiqueta flotante: android:textColorHint="@color/white"

En lugar de responder a Brahmam Yamani, prefiero usar Widget.Design.TextInputLayout como primario. Eso garantiza que todos los elementos necesarios estén presentes, incluso si no se sobrescriben todos los elementos. En la respuesta de Yamanis, la aplicación se bloqueará con un recurso irresoluble, si se llama a setErrorEnabled (true).

Simplemente cambie el estilo a lo siguiente:

  

Ahora, simplemente usar colorAccent y colorPrimary funcionará perfectamente.

deberías cambiar tu color aquí

  

Resuelvo el problema Esto es Diseño:

     

Este es Estilo:

    

Debes usar tu tema en la aplicación:

   

para cambiar el color de la etiqueta de texto cuando se está enfocando en ella. es decir, escribiendo en él. tienes que agregar especificar

 @color/yourcolorhere 

Solo una nota: debe agregar todas estas implementaciones a su tema principal.

Está trabajando para mí ….. agrega color de sugerencia en TextInputLayout

     

Para cambiar el color de la pista y editar el texto, subrayar el color: colorControlActivated

Para cambiar el color del contador de caracteres: textColorSecondary

Para cambiar el color del mensaje de error: colorControlNormal

Para cambiar el matiz del botón de visibilidad de la contraseña: colorPrincipal

Para obtener más información sobre TextInputLayout, lea http://www.zoftino.com/android-textinputlayout-tutorial

  
   

agrégalo a los estilos y establece TextInputLayout Theam en App2 y funcionará;)

En mi caso agregué esta ” app:hintTextAppearance="@color/colorPrimaryDark" en mi widget TextInputLayout.

Intenté usar android: textColorHint en android.support.design.widget.TextInputLayout, funciona bien.