android - for - Alternativa del atributo singleLine(Obsoleto) TextInputEditText
text field (5)
Recientemente utilicé TextInputEditText
y obtuve error de lint que el atributo singleLine
está en desuso
<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>
Obteniendo el siguiente paso:
¿Hay alguna manera alternativa de que esta o cualquier otra razón lo haga obsoleto?
Definir siempre el tipo de entrada para una sola línea
ex: inputType="text"
No necesitas hacer nada más.
El atributo android:singleLine
ha quedado en desuso desde API Level 3 . Puedes lograr el mismo comportamiento usando android:maxLines
, que te permite especificar un número arbitrario de líneas. Esto es superior a android:singleLine
, que te limita a permitir solo una línea.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minLines="2"
android:maxLines="2" /> <!-- can specify arbitrary number of max lines -->
Siguiendo un comentario de Juan José Melero Gómez, me gustaría agregar más información:
Si está intentando establecer una imeAction
para su EditText
como actionSearch
, establecer android:maxLines="1"
no será suficiente. Agregar android:inputType="text"
es obligatorio si desea ver el ícono de búsqueda.
android:singleLine
está en desuso desde API 3, tienes que usar android:maxLines
en su lugar (en tu caso android:maxLines="1"
).
La razón de la desaprobación es por su mal desempeño. De todos modos, el atributo singleLine
no se eliminará porque sigue siendo la única manera de realizar algunos efectos que android:maxLines
no puede realizar:
p.ej
Esto producirá un texto horizontal desplazable en una línea si el texto está seleccionado.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="end"
android:scrollHorizontally="true" />
En cambio, esto no funcionará:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:ellipsize="end"
android:scrollHorizontally="true" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:maxLines="1"
/>
use android:inputType="text"
y android:maxLines="1"
togather