J'ai rencontré cela également lors de ma recherche, mais je me demandais si Android fournissait une méthode native.
xsorifc28
1
Cela nous fait penser que quelque chose ne va pas avec Android. Il manque plusieurs lacunes dans l'API pour la conception de matériaux. Un autre exemple est le bouton d'action flottante.
motobói
Réponses:
3
Vous devez ajouter ce qui suit à votre fichier build.gradle de module:
Ouah merci! Je vais les parcourir et vous faire savoir comment cela se passe!
AdamMc331
2
Le troisième était ce que je cherchais. Je suis tombé sur TextInputLayout, mais je n'ai pas trouvé de bon exemple (probablement en recherchant tous les mauvais termes). Merci!
AdamMc331
18
La bibliothèque de support Android peut être importée dans gradle dans les dépendances:
compile 'com.android.support:design:22.2.0'
Il devrait être inclus dans GradlePlease! Et comme exemple pour l'utiliser:
J'obtiens l'erreur: (1) "L'attribut" couleur "a déjà été défini" lors de la synchronisation de gradle, probablement à cause de l'appcompat-v7. Je ne peux pas m'en débarrasser. Suggestions d'Anny?
mdzeko
MaterialEditText n'a pas défini un attribut nommé "couleur", donc il doit y avoir quelque chose qui ne va pas ailleurs.
rengwuxian
9
Importez les bibliothèques de support, dans le fichier build.gradle de votre projet, ajoutez les lignes suivantes dans les dépendances du projet:
Ensuite, appelez setHint sur TextInputLayout juste après l'appel setContentView car, pour animer l'étiquette flottante, il vous suffit de définir un indice à l'aide de la méthode setHint.
En utilisant au moins 23.1.1, vous n'avez pas besoin d'utiliser un appel explicite à setHint(). Cela fonctionne avec le conseil défini sur le EditTextdans le format xml.
https://github.com/thebnich/FloatingHintEditText fonctionne avec appcompat-v7 v21.0.0, mais comme la v21.0.0 ne prend pas en charge les couleurs d'accentuation avec les sous-classes de EditText, le soulignement de FloatingHintEditTextsera le noir ou blanc solide par défaut. De plus, le remplissage n'est pas optimisé pour le style Matériau EditText, vous devrez peut-être l'ajuster.
Je vous remercie. Je suppose que Google n'a pas non plus fourni d'API pour créer un avertissement de modification de texte de style matériau, comme dans google.com/design/spec/components/... Désolé pour les questions d'amateur, j'essaie de m'adapter autant à la conception matérielle car je peux utiliser l'api / bibliothèques de Google et essayer de comprendre tout ce qui a été fourni par rapport à toutes les bibliothèques extérieures. Merci encore!
xsorifc28
0
Non, ce n'est pas le cas. Je m'attendrais à cela dans une future version de l'API, mais pour l'instant, nous sommes bloqués avec EditText. Une autre option est cette bibliothèque: https://github.com/marvinlabs/android-floatinglabel-widgets
Pour un moyen plus simple d'utiliser InputTextLayout, j'ai créé cette bibliothèque qui réduit votre code XML à moins de la moitié, et vous offre également la possibilité de définir un message d'erreur ainsi qu'un message d'indication et un moyen simple de faire votre validations.
https://github.com/TeleClinic/SmartEditText
Ensuite, vous pouvez faire quelque chose comme ceci:
<com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditTextandroid:id="@+id/emailSmartEditText"android:layout_width="match_parent"android:layout_height="wrap_content"app:setLabel="Email"app:setMandatoryErrorMsg="Mandatory field"app:setRegexErrorMsg="Wrong email format"app:setRegexType="EMAIL_VALIDATION"/><com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditTextandroid:id="@+id/passwordSmartEditText"android:layout_width="match_parent"android:layout_height="wrap_content"app:setLabel="Password"app:setMandatoryErrorMsg="Mandatory field"app:setPasswordField="true"app:setRegexErrorMsg="Weak password"app:setRegexType="MEDIUM_PASSWORD_VALIDATION"/><com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditTextandroid:id="@+id/ageSmartEditText"android:layout_width="match_parent"android:layout_height="wrap_content"app:setLabel="Age"app:setMandatory="false"app:setRegexErrorMsg="Is that really your age :D?"app:setRegexString=".*\\d.*"/>
Réponses:
Vous devez ajouter ce qui suit à votre fichier build.gradle de module:
Et utilisez com.google.android.material.textfield.TextInputLayout dans votre XML:
la source
Indice flottant EditText:
Ajoutez ci-dessous la dépendance dans gradle:
Dans la mise en page:
la source
22.2.0
implementation 'com.google.android.material:material:1.0.0-rc01'
.Oui, depuis le 29 mai 2015, cette fonctionnalité est désormais fournie dans la bibliothèque de support de conception Android
Cette bibliothèque inclut la prise en charge de
la source
La bibliothèque de support Android peut être importée dans gradle dans les dépendances:
Il devrait être inclus dans GradlePlease! Et comme exemple pour l'utiliser:
Btw, l'éditeur peut ne pas comprendre que AutoCompleteTextView est autorisé dans TextInputLayout.
la source
Android n'a pas fourni de méthode native. Ni l'AppCompat.
Essayez cette bibliothèque: https://github.com/rengwuxian/MaterialEditText
C'est peut-être ce que vous voulez.
la source
Importez les bibliothèques de support, dans le fichier build.gradle de votre projet, ajoutez les lignes suivantes dans les dépendances du projet:
Utilisez TextInputLayout suivant dans votre disposition d'interface utilisateur:
Ensuite, appelez setHint sur TextInputLayout juste après l'appel setContentView car, pour animer l'étiquette flottante, il vous suffit de définir un indice à l'aide de la méthode setHint.
la source
setHint()
. Cela fonctionne avec le conseil défini sur leEditText
dans le format xml.La suggestion de @ andruboy de https://gist.github.com/chrisbanes/11247418 est probablement votre meilleur pari.
https://github.com/thebnich/FloatingHintEditText fonctionne avec appcompat-v7 v21.0.0, mais comme la v21.0.0 ne prend pas en charge les couleurs d'accentuation avec les sous-classes de
EditText
, le soulignement deFloatingHintEditText
sera le noir ou blanc solide par défaut. De plus, le remplissage n'est pas optimisé pour le style MatériauEditText
, vous devrez peut-être l'ajuster.la source
Non, ce n'est pas le cas. Je m'attendrais à cela dans une future version de l'API, mais pour l'instant, nous sommes bloqués avec EditText. Une autre option est cette bibliothèque:
https://github.com/marvinlabs/android-floatinglabel-widgets
la source
Pour un moyen plus simple d'utiliser InputTextLayout, j'ai créé cette bibliothèque qui réduit votre code XML à moins de la moitié, et vous offre également la possibilité de définir un message d'erreur ainsi qu'un message d'indication et un moyen simple de faire votre validations. https://github.com/TeleClinic/SmartEditText
Ajoutez simplement
Ensuite, vous pouvez faire quelque chose comme ceci:
la source
Essayez de cette façon
pour plus de références cliquez ici
la source
Utilisez le
TextInputLayout
fourni par la bibliothèque de composants de matériaux :la source