web-dev-qa-db-fra.com

Alternative de l'attribut singleLine (obsolète) TextInputEditText

J'ai récemment utilisé TextInputEditText et j'ai obtenu une erreur de la charpie que singleLine attribut est Obsolète

<Android.support.design.widget.TextInputEditText
            Android:id="@+id/my_edit_text"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:hint="@string/string_hint_dob"
            Android:lines="5"/>
</Android.support.design.widget.TextInputLayout>

Se faire traverser comme ci-dessous:

enter image description here

Y a-t-il un autre moyen pour cela?

Le Android:singleLine Cet attribut est déconseillé depuis API niveau . Vous pouvez obtenir le même comportement en utilisant Android:maxLines, qui vous permet de spécifier un nombre arbitraire de lignes. C'est supérieur à Android:singleLine, ce qui vous limite à autoriser une seule ligne.

<TextView
     Android:layout_width="wrap_content"
     Android:layout_height="wrap_content"
     Android:minLines="2"
     Android:maxLines="2" /> <!-- can specify arbitrary number of max lines -->
45
fractalwrench

Android:singleLine Est obsolète depuis l'API 3, vous devez utiliser Android:maxLines À la place (dans votre cas Android:maxLines="1").

La raison de la dépréciation est pour sa mauvaise performance. Quoi qu'il en soit, l'attribut singleLine ne sera pas supprimé, car il reste le seul moyen de créer des effets que Android:maxLines Ne peut générer:

par exemple.

Cela produira un texte horizontal défilant sur une ligne si le texte est sélectionné.

<TextView
     Android:layout_width="wrap_content"
     Android:layout_height="wrap_content"
     Android:singleLine="true"
     Android:ellipsize="end"
     Android:scrollHorizontally="true" />

Au lieu de cela, cela ne fonctionnera pas:

<TextView
     Android:layout_width="wrap_content"
     Android:layout_height="wrap_content"
     Android:maxLines="1"
     Android:ellipsize="end"
     Android:scrollHorizontally="true" />
36

Toujours définir le type d'entrée pour une seule ligne

ex: inputType="text"

Vous n'avez rien d'autre à faire.

22
Arihant

Suite à un engagement de Juan José Melero Gómez, je voudrais ajouter plus d'informations:

Si vous essayez de définir un imeAction sur votre EditText tel que actionSearch, définissez Android:maxLines="1" ne suffira pas. Ajouter Android:inputType="text" est obligatoire si vous voulez voir l’icône de recherche.

4
Rafael Ruiz Muñoz
<EditText
      Android:layout_width="match_parent"
      Android:layout_height="wrap_content"
      Android:inputType="text"
      Android:maxLines="1"
      />

utilisation Android:inputType="text" et Android:maxLines="1" rassembler

4
Ketan Ramani

Nécessaire remplacer Android:singleLine="true" à Android:maxLines="1" si vous voulez indiquer imeOptions nécessaire d’ajouter cette ligne Android:inputType="number|text ..."

0
Nicolae Cozma