Alternativa del atributo singleLine (Deprecated) TextInputEditText
Hace poco utilicé TextInputEditText
y obtuve el error de la pelusa que el atributo singleLine
es Deprecated
<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>
Obtención de huelga a través de lo siguiente:
- Cómo hacer una sugerencia wrap en un Android EditText?
- Tema predeterminado de Spinner a EditarTexto android
- ¿Cómo puedo cambiar la corcheta del cursor EditText color android (no el color del cursor la perilla)
- Cómo crear una preferencia que acepte sólo valores enteros
- ¿Cómo saber si el teclado (dis) aparece en Android?
¿Hay alguna manera alternativa para esto o cualquier razón de hacerlo obsoleto?
- Cómo obtener enfoque para EditText y navegar usando D-pad en Android TV
- Cómo ocultar el teclado cuando haga clic fuera de editText?
- Configurar android EditText para permitir decimales y negativos
- Cuando el teclado virtual aparece, hace que mi campo EditText pierda el foco
- Teclado suave de Samsung pierde las pulsaciones de teclado después del cambio de enfoque
- Android - Texto seleccionable: selecciona parte de un texto
- Mover a otro EditText cuando se hace clic en Soft Keyboard Next en Android
- Androide. OnEditorAction nunca llamado
El atributo android:singleLine
ha quedado obsoleto desde el Nivel 3 de la API . Puede lograr el mismo comportamiento usando android:maxLines
, que le permite especificar un número arbitrario de líneas. Esto es superior a android:singleLine
, lo que restringe a sólo permitir 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 -->
android:singleLine
está obsoleto desde la API 3, tienes que usar android:maxLines
en su lugar (en tu caso android:maxLines="1"
).
La razón de la depreciación es por su mal desempeño. De todos modos el atributo singleLine
no se eliminará porque sigue siendo la única manera de hacer algunos efectos que android:maxLines
no puede hacer:
p.ej
Esto producirá un desplazamiento de texto horizontal en una línea si se selecciona el texto.
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="end" android:scrollHorizontally="true" />
En su lugar, esto no funcionará:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:ellipsize="end" android:scrollHorizontally="true" />
Definir siempre el tipo de entrada para una sola línea
Ex: inputType="text"
No necesitas hacer nada más.
A raíz de un compromiso de Juan José Melero Gómez, quisiera añadir más información:
Si intenta establecer una imeAction
en su EditText
como actionSearch
, la configuración de android:maxLines="1"
no será suficiente. Adición de android:inputType="text"
es obligatorio si desea ver el icono de búsqueda.