Estoy usando un EditText
inside a TextInputLayout
, pero después de actualizar la biblioteca de soporte a 23.2.0, aparece esta advertencia en el logcat, ¿Cuál es la diferencia entre un regular EditText
y un a TextInputEditText
? Parece que no puedo encontrar ninguna documentación para ello.
93
Respuestas:
Yo también me preguntaba esto, Daniel Wilson reunió la documentación, pero para el ojo inexperto no significa mucho. De esto se trata: "modo de extracción" se refiere al tipo de vista que se muestra cuando el espacio es demasiado pequeño, por ejemplo, el paisaje en un teléfono. Estoy usando Galaxy S4 con el teclado de Google como editor de métodos de entrada (IME).
Interfaz de usuario horizontal sin IME visible
Según el enfoque (en la Descripción), puede ver
TextInputLayout
en acción empujar la pista fuera del editor. Nada especial aquí, esto es lo queTextInputLayout
se supone que debe hacer.IU horizontal que edita el campo de nombre vacío
Al editar el nombre, puede ver que el IME no le da una pista de lo que está editando.
Campo de descripción vacío de edición de interfaz de usuario horizontal
Al editar la descripción, puede ver que el IME le da una pista de lo que está editando.
XML de diseño
La diferencia entre los dos campos es su tipo
EditText
VSTextInputEditText
. Lo importante aquí es queTextInputLayout
tiene elandroid:hint
EditText envuelto y no el envuelto, este es el caso cuandoTextInputEditText
las pocas líneas de código Java hacen una gran diferencia.Campo de nombre
Campo de descripción
fuente
android:hint
se supone que la propiedad debe ingresar enTextInputEditText
lugar deTextInputLayout
.TextInputEditText
es un detalle de implementación de la interfaz de usuario.No hay documentación para ello, pero la clase es regular
EditText
con una característica adicional única:Específicamente establece el
EditorInfo.hintText
. Notarás que en laTextInputLayout
clase puedes especificar la pista y su apariencia en lugar de como parte delEditText
widget secundario .Si necesita hacer eso, debe usar un
TextInputEditText
para que preste atención a la información de sugerencia que especificó en elTextInputLayout
.fuente
Son esencialmente lo mismo, pero creo que
TextInputEditText
tiene más características y posiblemente atributos. Cambié alTextInputEditText
y todo funcionó y se veía como antes con el estándarEditText
.fuente
La única diferencia es que cuando su dispositivo está en modo horizontal,
TextInputEditText
mostrará la pista,EditText
no lo hará.fuente
Tuve este problema y acabo de eliminar esta línea en mi archivo xml:
y el error desapareció.
fuente