J'utilise un EditText
dans un TextInputLayout
, mais après la mise à niveau de la bibliothèque de support à 23.2.0, cet avertissement s'affiche dans le logcat. Quelle est la différence entre un EditText
normal et un TextInputEditText
? Je n'arrive pas à trouver de documentation pour cela.
Je me demandais aussi ceci, Daniel Wilson rassembla la documentation, mais pour un non-entraîné, cela ne voulait pas dire grand chose. Voici ce dont il s'agit: "mode d'extraction" fait référence au type de vue affiché lorsque l'espace est trop petit, par exemple, paysage sur un téléphone. J'utilise Galaxy S4 avec Google Keyboard en tant qu'IME.
Selon le focus (sur Description), vous pouvez voir TextInputLayout
en action en poussant l'indicateur en dehors de l'éditeur. Rien de spécial ici, c’est ce que TextInputLayout
est censé faire.
En modifiant le nom, vous constatez que l’IME ne vous donne pas une idée de ce que vous éditez.
En modifiant la description, vous pouvez constater que l'IME vous donne une idée de ce que vous éditez.
La différence entre les deux champs est leur type EditText
VS TextInputEditText
. La chose importante ici est que TextInputLayout
a le Android:hint
et non le EditText encapsulé, c’est le cas lorsque les quelques lignes de TextInputEditText
du code Java font une grande différence.
<Android.support.design.widget.TextInputLayout
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:hint="Item Name"
>
<EditText
Android:id="@+id/name"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
/>
</Android.support.design.widget.TextInputLayout>
<Android.support.design.widget.TextInputLayout
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:hint="Item Description"
>
<Android.support.design.widget.TextInputEditText
Android:id="@+id/description"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:inputType="textMultiLine"
Android:minLines="4"
Android:scrollbars="vertical"
/>
</Android.support.design.widget.TextInputLayout>
Il n'y a pas de documentation pour cela, mais la classe est une EditText
régulière avec une seule fonctionnalité supplémentaire:
L'utilisation de cette classe nous permet d'afficher un indice dans l'IME en mode "extraction".
Spécifiquement, il définit EditorInfo.hintText
. Vous remarquerez que dans la classe TextInputLayout
, vous pouvez spécifier le conseil et son apparence plutôt que dans le cadre du widget enfant EditText
.
Si vous avez besoin de le faire, vous devez utiliser un TextInputEditText
pour que les informations de conseil que vous avez spécifiées dans le TextInputLayout
soient prises en compte.
Ils sont essentiellement la même chose, mais je pense que la TextInputEditText
a plus de fonctionnalités et éventuellement d’attributs. J'ai changé pour le TextInputEditText
et tout a fonctionné et a ressemblé à ce qu'il était auparavant avec le standard EditText
.