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!
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>
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
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.
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.
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");
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.
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.*" />
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
Essayez de cette façon
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