Définir par programmation TextInputLayout de l'Indice de la Couleur de Texte et Flottante de Couleur d'Étiquette
- Je utiliser un TextInputLayout, je voudrais définir par programmation l'allusion à la couleur du texte et le flottant de couleur d'étiquette si le champ d'entrée est obligatoire. Avant de passer à TextInputLayout j'ai utilisé pour définir l'indice de la couleur de texte par programmation à l'aide de la suite de
textField.setHintTextColor(Color.RED);
Quelqu'un peut-il me guider sur la façon de définir l'indice de la couleur de texte et le flottement de l'étiquette de la couleur par programme pour un TextInputLayout.
Dans la capture d'écran jointe je voudrais que le texte d'instruction Adresse 1 à être dans le rouge quand elle n'est pas centrée et sur l'objet flottant étiquette Adresse 1 devrait être dans le rouge.
OnFocusChangeListener
ces TextFields.Je ne sais pas si cela fonctionne.Ajouter un onFocusChangeListener à l'édition de texte et de changer l'indice de la couleur, de la onFocusChangeListener donne une valeur booléenne dans ses paramètres, ce qui est vrai si la modification de texte a le focus et la valeur false lorsque l'accent est mis hors de lui. Définir la hintTextColor en conséquence.
Je n'ai pas essayer mais je pense que cela devrait fonctionner pour vous: InputTextLayout.getEditText().setHintTextColor(de Couleur.ROUGE);
Essayé, ça ne fonctionne pas.
OriginalL'auteur S.A.Norton Stanley | 2016-02-28
Vous devez vous connecter pour publier un commentaire.
J'ai changé de concentré de couleur avec la réflexion. Voici l'extrait de code, il peut aider quelqu'un.
MODIFIER 2018-08-01:
Si vous êtes en utilisant la conception de la bibliothèque v28.0.0 et versions ultérieures, les champs avaient changé de
mDefaultTextColor
àdefaultHintTextColor
et demFocusedTextColor
àfocusedTextColor
.Vérifier décompilé classe pour les autres champs.
Merci mais je n'ai pas vraiment suggérons d'utiliser cette méthode.
Je sais pourquoi vous ne le conseille pas, mais je n'ai pas trouvé une façon normale à l'aide de Android méthodes pour changer la couleur de façon dynamique. Avez-vous une idée de comment faire cela? Merci
Je suggère la création de votre propre InputLayout. C'est ce que j'ai fait
Cette solution ne fonctionne plus, avec l'API 28 je suis de java.lang.NoSuchFieldException: Pas de champ mDefaultTextColor dans la classe Landroid/support/design/widget/TextInputLayout;
OriginalL'auteur
S'il vous plaît, prendre un bon coup d'oeil à la documentation ici: TextInputLayout Méthodes
Il existe une méthode :
Qui prend un id de ressource qui pourrait être une ressource de couleur!
Je voudrais essayer cela et voir comment il va!
J'espère que cela vous aide!
Essayez cette réponse stackoverflow.com/questions/33709066/...
Qui en quelque sorte n'ont pas de travail pour moi. J'ai essayé ce textInputLayout.setErrorEnabled(true); textInputLayout.setError(" ");. Cette affiche flottant label rouge maintenant, cependant aucun indice de texte s'affiche. Vais poster ceci comme une réponse à l'exhaustivité.
Bien! Je suis heureux que vous avez obtenu quelque chose de plus proche de ce que tu voulais
Attendus de la Ressource Type de Style et non la Couleur. Assurez-vous de lire les Méthodes avant de poster votre propre description de ce sujet
OriginalL'auteur
Normalement TextInputLayout astuce couleur du texte provient de l'application colorAccent.
Mais si vous voulez changer, puis vous pouvez utiliser le style.
@style
Mais si vous voulez ajouter de la couleur rouge, alors comment pouvez-vous la différence avec une erreur de couleur de norme de base erreur de couleur Rouge.
setHintTextColor fonctionne pour API 23+
OriginalL'auteur
Pour Changer les deux
Focused Color
etDefault Text Color
pour TextInput DispositionEDIT : De Changer AppCompactEditText couleur de la ligne
Vous devez définir la
backgroundTintList
(ousupportBackgroundTintList
) sur laEditText
à une instance deColorStateList
ne contenant que la couleur que vous souhaitez modifier la teinte. Un moyen facile de le faire dans un rétro-compatible façon ressemble à ceci:Ce que va donner la
EditText
souhaité souligner la couleur.Merci de fournir
mDefaultTextColor
. Il est nécessaire, si nous décidons de modifier le flotteur de la couleur du texte, même lorsque EditText est désactivé.OriginalL'auteur
Permettez-moi de partager mon expérience sur ce. J'ai aussi essayé toutes les solutions dans chaque question liée à celui-ci. c'est à dire indicateur de Modification de la couleur de l'enfant widget pour
TextInputLayout
Je suis content de partager la réponse à cette question avec un peu de détail.
Tout ce que nous devons savoir, c'est:-
Ajouter en dessous de la ligne de style de
TextInputLayout
ou son enfant widget, n'est pas beaucoup d'aide.<item name="android:textColorHint">@couleur/blanc</item>
car il utilise colorAccent chaque fois que le focus est reçu/accordée à modifiable widget.
La réponse réelle à ce problème consiste à ajouter que le style de ligne dans l'Application de l'étiquette de style, qui lui permettra de définir soupçon de couleur lors de cette ou de toute zone modifiable n'est pas une priorité. (C'est le point que nous manquez à chaque fois).
S'il vous plaît laissez-moi savoir si nous avons d'autres informations sur ce sujet.
Merci!
OriginalL'auteur
J'ai été en mesure d'obtenir la FloatingLabel en rouge à l'aide de la suite de
Bien ce qui a résolu mon problème donc accepté comme réponse!
OriginalL'auteur