wake-up-neo.com

So verwenden Sie TextInputLayout in der neuen Android-Designbibliothek

Vor kurzem hat google eine neue Android Design Library eingeführt, in der das TextInputLayout-Feld zur Aktivierung der Floating Hint-Funktion von EditText verwendet wird.

Es gibt nicht viele Anleitungen hier .

Diese Seite sagt

sie können es jetzt in ein TextInputLayout einpacken

Keine Ahnung, da die intelligente Vorhersage (Strg + LEERTASTE) dem TextInputLayout keine Attribute vorhersagt. Meine Fragen sind also:

Wie erhalten wir den dieser Komponente zugrunde liegenden EditText?

Wie erhalten wir Daten von EditText?

40
Kamalanathan

TextInputLayout erweitert die ViewGroup-Klasse ..__, was bedeutet, dass Sie Ihre EditText in eine TextInputLayout einschließen müssen.

<Android.support.design.widget.TextInputLayout
     Android:layout_width="match_parent"
     Android:layout_height="wrap_content">

     <EditText
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:hint="hint"
        Android:id="@+id/editText1" />

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

Dies ist in der Design Support Library unter "Floating Labels zum Bearbeiten von Text" definiert.

     <Android.support.design.widget.TextInputLayout
            Android:id="@+id/name_et_textinputlayout"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:layout_marginTop="@dimen/activity_vertical_margin">

            <EditText
                Android:id="@+id/FeedBackerNameET"
                Android:layout_width="fill_parent"
                Android:layout_height="wrap_content"
                Android:hint="hinttext"
                Android:inputType="textPersonName|textCapWords" />
     </Android.support.design.widget.TextInputLayout>
4
anand krish

Wickeln Sie die Variable TextInputLayout anstelle von TextInputEditText um EditText.

Das Umbrechen von EditText hat ein Problem im Querformatmodus. Weitere Informationen finden Sie unter diesem Artikel .

<Android.support.design.widget.TextInputLayout
     Android:layout_width="match_parent"
     Android:layout_height="wrap_content">

     <Android.support.design.widget.TextInputEditText
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:hint="hint"
        Android:id="@+id/editText1" />

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

    <EditText
        Android:id="@+id/et_message"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:hint="@string/type_message"
        Android:maxLines="5"/>

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

der Hinweis wird automatisch nach oben verschoben, sobald Sie mit der Eingabe des Bearbeitungstextes beginnen. Die Fehler werden angezeigt, wenn Fehler beim Bearbeiten des Textsatzes im Texteingabelayout angezeigt werden

tilMessage.setError("Message field is empty!");

fehler zu deaktivieren

tilMessage.setErrorEnabled(false);
1
Cherry admin

Damit dies funktioniert, sollten Sie zulassen, dass das App-Theme von Theme.AppCompat (oder dessen Nachkommen) ausgeht, z. B. von Theme.AppCompat.Light.NoActionBar.

1
xiaoweiz

Der richtige Weg ...

<Android.support.design.widget.TextInputLayout
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:padding="10dp">

            <Android.support.design.widget.TextInputEditText
                Android:id="@+id/card_id_edit_text"
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:hint="@string/form_card_id_text"
                Android:inputType="number"
                Android:maxLength="10"/>
        </Android.support.design.widget.TextInputLayout>

Wenn Sie EditText wie ein untergeordnetes Element von TextInputLayout verwenden, wird diese Meldung in Android Monitor angezeigt:

I/TextInputLayout: Das hinzugefügte EditText ist kein TextInputEditText. Bitte wechseln Sie stattdessen zu dieser Klasse.

1
Brayan Loayza

Wir können AppCompactEditText auch verwenden, um Unterstützung hinzuzufügen: appcompat in gradle

 <Android.support.design.widget.TextInputLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_margin="20dp">

    <Android.support.v7.widget.AppCompatEditText
        Android:id="@+id/et_name"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:hint="@string/hint"
        Android:maxLength="100"
        Android:inputType="textNoSuggestions"
        Android:textColor="@color/colorPrimary"
        Android:textSize="@dimen/font_size_large" />

</Android.support.design.widget.TextInputLayout>
0
Naveen Kumar M

Mit der Material Components Library gibt es eine neue TextInputLayout Komponente.

Benutz einfach:

<com.google.Android.material.textfield.TextInputLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:hint="@string/hint_text">

  <com.google.Android.material.textfield.TextInputEditText
      Android:layout_width="match_parent"
      Android:layout_height="wrap_content"/>

</com.google.Android.material.textfield.TextInputLayout>

enter image description hereenter image description here

Im offizielles Dokument finden Sie alle Informationen.

0