Stellt API 21 eine Methode zur Verwendung der folgenden Funktion bereit:
http://www.google.com/design/spec/components/text-fields.html#text-fields-floating-labels
Ich versuche, die EditText-Hinweise zu schweben.
Vielen Dank!
Floating hint EditText:
Füge folgende Abhängigkeit in gradle hinzu:
compile 'com.Android.support:design:22.2.0'
Im Layout:
<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>
Ja, seit dem 29. Mai 2015 ist diese Funktionalität in der Android Design Support Library verfügbar
Diese Bibliothek enthält Unterstützung für
Die Android Support-Bibliothek kann in den folgenden Abhängigkeiten in gradle importiert werden:
compile 'com.Android.support:design:22.2.0'
Es sollte in GradlePlease enthalten sein! Und als Beispiel dafür:
<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>
Übrigens versteht der Editor möglicherweise nicht, dass AutoCompleteTextView in TextInputLayout zulässig ist.
Android hat keine native Methode bereitgestellt. Auch der AppCompat.
Probieren Sie diese Bibliothek aus: https://github.com/rengwuxian/MaterialEditText
Das könnte sein, was Sie wollen.
Importieren Sie die Support-Bibliotheken. Fügen Sie in der build.gradle-Datei Ihres Projekts die folgenden Zeilen in die Abhängigkeiten des Projekts ein:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:design:22.2.0'
compile 'com.Android.support:appcompat-v7:22.2.0'
}
Verwenden Sie folgendes TextInputLayout in Ihrem UI-Layout:
<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>
Rufen Sie dann setHint in TextInputLayout direkt nach dem Aufruf von setContentView auf, da Sie zum Animieren der unverankerten Beschriftung nur einen Hinweis mithilfe der setHint-Methode festlegen müssen.
final TextInputLayout usernameWrapper = (TextInputLayout) findViewById(R.id.usernameWrapper);
usernameWrapper.setHint("Username");
@ andruboys Vorschlag von https://Gist.github.com/chrisbanes/11247418 ist wahrscheinlich die beste Wahl.
https://github.com/thebnich/FloatingHintEditText funktioniert mit appcompat-v7 v21.0.0, aber seit v21.0.0 werden Akzentfarben mit Unterklassen von EditText
nicht unterstützt Die Unterstreichung von FloatingHintEditText
ist das Standardschwarz oder -weiß. Außerdem ist die Polsterung nicht für den Materialstil EditText
optimiert, sodass Sie sie möglicherweise anpassen müssen.
Um die Verwendung von InputTextLayout zu vereinfachen, habe ich diese Bibliothek erstellt, mit der Sie Ihren XML-Code auf weniger als die Hälfte reduzieren können. Außerdem können Sie eine Fehlermeldung sowie eine Hinweisnachricht festlegen und dies auf einfache Weise tun Validierungen. https://github.com/TeleClinic/SmartEditText
Einfach hinzufügen
compile 'com.github.TeleClinic:SmartEditText:0.1.0'
Dann können Sie so etwas tun:
<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.*" />
Nein, tut es nicht. Ich würde dies in einer zukünftigen API-Veröffentlichung erwarten, aber im Moment bleiben wir bei EditText. Eine andere Option ist diese Bibliothek:
https://github.com/marvinlabs/Android-floatinglabel-widgets
Versuchen Sie es auf diese Weise
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:23.0.1'
compile 'com.Android.support:design:23.0.1'
}
für weitere Informationen klicken Sie auf hier