66 votes

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

J'ai récemment utilisé TextInputEditText et j'ai obtenu une erreur de type charpie indiquant que l'attribut singleLine 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>
 

Obtenir une traversée comme ci-dessous:

entrez la description de l'image ici

Existe-t-il une autre solution ou une raison de le rendre obsolète?

66voto

fractalwrench Points 3007

L'attribut android:singleLine est obsolète depuis le niveau 3 de l'API . Vous pouvez obtenir le même comportement en utilisant android:maxLines , ce qui vous permet de spécifier un nombre arbitraire de lignes. Ceci 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 -->
 

48voto

Arihant Points 118

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

ex: inputType="text"

Vous n'avez rien d'autre à faire.

39voto

Giorgio Antonioli Points 6105

android:singleLine est obsolète depuis 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. De toute façon l' singleLine d'attribut ne sera pas supprimé car il est encore le seul moyen pour faire des effets qu' android:maxLines peut pas:

par exemple

Ceci va produire un défilement horizontal du texte sur une seule ligne si du 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 fonctionne pas:

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

20voto

Ketan Ramani Points 541
 <EditText
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:inputType="text"
      android:maxLines="1"
      />
 

utiliser android:inputType="text" et android:maxLines="1" ensemble

6voto

Rafael Ruiz Muñoz Points 2260

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éfinir android:maxLines="1" ne sera pas suffisant. L'ajout de android:inputType="text" est obligatoire si vous souhaitez voir l'icône de recherche.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X