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.
- #c5c5c5
- @color/accent
- @color/accent
Pour plus d’informations, cochez cette case .
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é:
Sans focus:
Message d’erreur:
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