web-dev-qa-db-fra.com

Android EditText view Indicateur flottant dans la conception des matériaux

API 21 fournit-elle une méthode pour utiliser la fonctionnalité suivante:

http://www.google.com/design/spec/components/text-fields.html#text-fields-floating-labels

J'essaie de laisser flotter les astuces EditText.

Merci!

91
xsorifc28

Indice flottant EditText:

Ajouter ci-dessous la dépendance en grade:

compile 'com.Android.support:design:22.2.0'

En mise en page:

<Android.support.design.widget.TextInputLayout
    Android:id="@+id/text_input_layout"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content">

        <EditText
            Android:id="@+id/editText"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:hint="UserName"/>
    </Android.support.design.widget.TextInputLayout>
103
arpit

Oui, à compter du 29 mai 2015, cette fonctionnalité est désormais fournie dans le Android Design Support Library

Cette bibliothèque inclut un support pour

  • Étiquettes flottantes
  • Bouton d'action flottant
  • Snackbar
  • Tiroir de navigation
  • et plus
60
Dave Jensen

La bibliothèque de support Android peut être importée dans gradle dans les dépendances suivantes:

    compile 'com.Android.support:design:22.2.0'

Il devrait être inclus dans GradlePlease! Et à titre d'exemple pour l'utiliser:

 <Android.support.design.widget.TextInputLayout
    Android:id="@+id/to_text_input_layout"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content">

    <AutoCompleteTextView
        Android:id="@+id/autoCompleteTextViewTo"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:hint="To"
        Android:layout_marginTop="45dp"
        />
</Android.support.design.widget.TextInputLayout>

Btw, l'éditeur peut ne pas comprendre que AutoCompleteTextView est autorisé dans TextInputLayout.

18
aselims

Android n'a pas fourni de méthode native. Ni le AppCompat.

Essayez cette bibliothèque: https://github.com/rengwuxian/MaterialEditText

C'est peut-être ce que vous voulez.

11
rengwuxian

Importez les bibliothèques de support. Dans le fichier build.gradle de votre projet, ajoutez les lignes suivantes dans les dépendances du projet:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.Android.support:design:22.2.0'
    compile 'com.Android.support:appcompat-v7:22.2.0'
}

Utilisez les instructions suivantes pour TextInputLayout dans la présentation de votre interface utilisateur:

<Android.support.design.widget.TextInputLayout
    Android:id="@+id/usernameWrapper"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content">

    <EditText
        Android:id="@+id/username"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:inputType="textEmailAddress"
        Android:hint="Username"/>

</Android.support.design.widget.TextInputLayout>

Ensuite, appelez setHint sur TextInputLayout juste après l'appel de setContentView car, pour animer l'étiquette flottante, il vous suffit de définir un conseil, à l'aide de la méthode setHint.

final TextInputLayout usernameWrapper = (TextInputLayout) findViewById(R.id.usernameWrapper);
usernameWrapper.setHint("Username");
9
shridutt kothari

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 depuis la v21.0.0 ne prend pas en charge les couleurs d'accent avec les sous-classes de EditText, le soulignement de FloatingHintEditText sera le noir ou le blanc fixe par défaut. De plus, le rembourrage n'est pas optimisé pour le style de matériau EditText, vous devrez donc peut-être le régler.

3
TalkLittle

Pour faciliter l’utilisation de 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, un message d’aide et un moyen simple de réaliser vos tâches. validations. https://github.com/TeleClinic/SmartEditText

Ajoutez simplement

compile 'com.github.TeleClinic:SmartEditText:0.1.0'

Ensuite, vous pouvez faire quelque chose comme ça:

<com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditText
    Android: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.SmartEditText
    Android: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.SmartEditText
    Android: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.*" />
0
Karim

Non ce n'est pas. Je m'attendrais à ce que cela apparaisse 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

0
Patrick

Essayez de cette façon

enter image description here

  dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:23.0.1'
compile 'com.Android.support:design:23.0.1'

}

pour plus de références cliquez ici

0
Dhina k