J'utilise un EditText
inside a TextInputLayout
, mais après la mise à niveau de la bibliothèque de support vers 23.2.0, j'obtiens cet avertissement dans le logcat, quelle est la différence entre un régulier EditText
et un TextInputEditText
? Je n'arrive pas à trouver de documentation à ce sujet.
android
android-layout
android-edittext
android-support-library
android-textinputlayout
Silvia H
la source
la source
Réponses:
Je me posais la question aussi, Daniel Wilson a rassemblé la documentation, mais pour un œil non averti, cela ne signifie pas grand-chose. Voici de quoi il s'agit: le «mode extraction» fait référence au type de vue qui s'affiche lorsque l'espace est trop petit, par exemple paysage sur un téléphone. J'utilise Galaxy S4 avec Google Keyboard comme éditeur de méthode de saisie (IME).
Interface utilisateur en mode paysage sans IME visible
En vous basant sur le focus (sur la description), vous pouvez voir
TextInputLayout
en action pousser le conseil en dehors de l'éditeur. Rien de spécial ici, c'est ce quiTextInputLayout
est censé faire.Interface utilisateur de paysage éditant un champ de nom vide
En modifiant le nom, vous pouvez voir que l'IME ne vous donne pas une idée de ce que vous modifiez.
Champ de description vide
En modifiant la description, vous pouvez voir que l'IME vous donne une idée de ce que vous modifiez.
XML de mise en page
La différence entre les deux champs est leur type
EditText
VSTextInputEditText
. La chose importante ici est queTextInputLayout
l 'android:hint
EditText et non l' encapsulé sont inclus, c'est le cas lorsqueTextInputEditText
les quelques lignes de code Java font une grande différence.Champ de nom
Champ de description
la source
android:hint
propriété est censée entrer à laTextInputEditText
place deTextInputLayout
.TextInputEditText
est un détail d'implémentation de l'interface utilisateur.Il n'y a pas de documentation pour cela, mais la classe est un classique
EditText
avec une seule fonctionnalité supplémentaire:Plus précisément, il définit le
EditorInfo.hintText
. Vous remarquerez dans laTextInputLayout
classe que vous pouvez spécifier l'indication et son apparence plutôt que dans le cadre duEditText
widget enfant .Si vous avez besoin de le faire, vous devez utiliser un
TextInputEditText
pour qu'il prenne en compte les informations d'indication que vous avez spécifiées dans le fichierTextInputLayout
.la source
Ils sont essentiellement la même chose, mais je pense que le
TextInputEditText
a plus de fonctionnalités et éventuellement d'attributs. J'ai changé pour leTextInputEditText
et tout a fonctionné et avait l'air comme avant avec la normeEditText
.la source
La seule différence est que lorsque votre appareil est en mode paysage,
TextInputEditText
il affichera l'indice,EditText
non.la source
J'ai eu ce problème et je viens de supprimer cette ligne dans mon fichier xml:
et l'erreur a disparu.
la source