webentwicklung-frage-antwort-db.com.de

Android EditText view Floating Hint in Material Design

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!

91
xsorifc28

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>
103
arpit

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

  • Schwimmende Etiketten
  • Schwimmende Aktionstaste
  • Imbissbude
  • Navigationsfach
  • und mehr
60
Dave Jensen

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.

18
aselims

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.

11
rengwuxian

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");
9

@ 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.

3
TalkLittle

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.*" />
0
Karim

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

0
Patrick

Versuchen Sie es auf diese Weise

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'

}

für weitere Informationen klicken Sie auf hier

0
Dhina k