comment changer la couleur de l’étiquette de TextinputLayout et edittext souligner Android

J’utilise TextinputLayout la bibliothèque de conception Android. Mais vous ne pouviez pas personnaliser la couleur de conseil, la couleur de l’étiquette et la couleur de soulignement de EditText dans TextinputLayout . S’il vous plaît aider.

Pour modifier la couleur de la ligne du bas, vous pouvez l’utiliser dans le thème de votre application:

 #c5c5c5 @color/accent @color/accent 

Pour plus d’informations, cochez cette case .

Pour changer la couleur de l’étiquette flottante

  

et l'utiliser comme:

   

Mettre à jour:
Et utilisez-le comme ci-dessous, si vous voulez changer Hint Color, quand il ne s'agit pas d'une étiquette flottante:

  

Merci à @AlbAtNf

Basé sur Fedor Kazakov et d’autres réponses, j’ai créé une configuration par défaut.

styles.xml

        

activity_layout.xml

    

Concentré:

Concentré

Sans focus:

Sans focus

Message d’erreur:

entrer la description de l'image ici

Ce blog décrit les différents aspects de style de EditText et AutoCompleteTextView EditText par TextInputLayout .

Pour EditText et AppCompat lib 22.1.0+, vous pouvez définir un atsortingbut de thème avec certains parameters relatifs au thème:

   

et les appliquer sur EditText :

  

Pour AutoCompleteTextView choses sont plus compliquées car leur encapsulation dans TextInputLayout et l'application de ce thème interrompent le comportement des étiquettes flottantes. Vous devez corriger cela dans le code:

 private void setStyleForTextForAutoComplete(int color) { Drawable wrappedDrawable = DrawableCompat.wrap(autoCompleteTextView.getBackground()); DrawableCompat.setTint(wrappedDrawable, color); autoCompleteTextView.setBackgroundDrawable(wrappedDrawable); } 

et dans Activity.onCreate :

 setStyleForTextForAutoComplete(getResources().getColor(R.color.greyLight)); autoCompleteTextView.setOnFocusChangeListener((v, hasFocus) -> { if(hasFocus) { setStyleForTextForAutoComplete(getResources().getColor(R.color.blue)); } else { if(autoCompleteTextView.getText().length() == 0) { setStyleForTextForAutoComplete(getResources().getColor(R.color.greyLight)); } } }); 

Ajoutez cet atsortingbut dans la balise Edittext et profitez de:

  android:backgroundTint="@color/colorWhite" 
  

Vous pouvez remplacer ce style pour la mise en page

Et vous pouvez également changer le style de l’object EditText interne.

Si vous voulez changer la couleur de barre / ligne et la couleur de texte de conseil de TextInputLayout (ce que la couleur d’accent est normalement), alors créez simplement ce style:

  

Ensuite, appliquez-le à votre TextInputLayout tant que thème :

  

Cela définit fondamentalement un thème (pas de style) à une vue (par opposition à l’activité entière).

  

appliquer ce style à TextInputLayout