J'essaie de faire quelque chose sur ces lignes:
Je suis en mesure d'afficher l'indice à l'aide de Android:hint="Email Address"
mais je ne peux pas afficher le texte de l'aide - ce sera votre nom d'utilisateur par courrier électronique}
<Android.support.design.widget.TextInputLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<EditText
Android:id="@+id/et_username"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:ems="15"
Android:hint="Username"
app:et_helper="Username is preferably your registered email"/>
</Android.support.design.widget.TextInputLayout>`
Ce que je reçois, c’est seulement et pas _ {le nom d’utilisateur est de préférence votre adresse électronique enregistrée} ci-dessous edittext:
Sortie:
Tous les pointeurs appréciés. Je vous remercie.
Le meilleur moyen est d'utiliser TextInputLayout
. Google l'a introduit dans une nouvelle bibliothèque de design. Pour utiliser TextInputLayout, vous devez ajouter les éléments suivants à vos dépendances build.gradle:
compile 'com.Android.support:design:22.2.0'
Puis utilisez-le dans vos fichiers xml:
<Android.support.design.widget.TextInputLayout
Android:id="@+id/textInputLayout"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content">
<EditText
Android:id="@+id/editText"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:hint="Enter your name"/>
</Android.support.design.widget.TextInputLayout>
Vous pouvez définir votre texte en définissant error true. Bien que ce soit pour montrer des erreurs mais cela convient à votre utilisation. Vous pouvez changer de couleur et de police si vous le souhaitez.
TextInputLayout til = (TextInputLayout) findViewById(R.id.textInputLayout);
til.setErrorEnabled(true);
til.setError("You need to enter a name");
Le texte d'assistance n'est pas fourni par TextInputLayout. Cependant, l'article ci-dessous en contient un exemple concret. Il utilise une classe qui s'étend de TextInputLayout en ajoutant HelperText en tant qu'indicateur supplémentaire de la classe, en parallèle de ErrorText.
https://medium.com/@elye.project/material-login-with-helper-text-232472400c15#.vm28p662v
Donc, ce que vous voulez, c'est ceci:
Vous pouvez y parvenir en utilisant cette bibliothèque:
https://github.com/rengwuxian/MaterialEditText
Vous pouvez définir l'attribut "helper text" pour afficher le texte sous la ligne et le "conseil" pour afficher le texte au-dessus de la ligne. Ci-dessous l'exemple de mise en page de l'image ci-jointe
<com.rengwuxian.materialedittext.MaterialEditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:hint="Password"
Android:inputType="textPassword"
app:met_floatingLabel="normal"
app:met_helperText="Must contain at least 8 characters"
app:met_helperTextAlwaysShown="true"/>
J'avais une question similaire posée ici . Si vous souhaitez conserver deux vues EditText ensemble fermées verticalement dans LinearLayout, je pense que ce n’est pas possible. Je pense que l’une des solutions consiste à définir l’Android: gravité du haut EditText sur 'bottom' et 'top' sur le EditText inférieur. Mais dans RelativeLayout, cela devrait être facile.
TextInputLayout peut être utilisé si vous souhaitez afficher le texte de conseil (au-dessus de EdiText) même lorsque l'utilisateur le tape. Habituellement, avec l'indication de paramètre EditText, cela ne fonctionnerait pas. Le texte d'indice disparaîtrait une fois la vue focalisée en la touchant.
Avec Design Support Library 28, une fonctionnalité Texte d'assistance intégrée est ajoutée à TextInputLayout.
implementation 'com.Android.support:design:28.0.0'
Maintenant, activez l'erreur en utilisant XML ou par programme
textInputLayout.isHelperTextEnabled=true
textInputLayout.error="Email can not be Empty!!!"
De plus, indice et erreur peuvent être utilisés ensemble maintenant !!!
Exemple
et.setOnFocusChangeListener { v, b ->
if (b) {
textInputLayout.helperText = "yourhelperText"
} else {
textInputLayout.helperText = null
if(et.text.toString()==""){ // or any other validation
textInputLayout.error="Email can not be Empty!!!"
}
}
TextInputLayout | Développeurs Android
EDIT N'oubliez pas d'activer l'erreur et le texte auxiliaire via XML ou par programme.