Sugerencias de teclado hacen que parte del mensaje de Android EditText.setError () no se muestre
Cuando estoy usando edittext.setError("enter a comment")
en android, funciona bien hasta que las sugerencias del teclado edittext
y el error se empuja por encima del edittext
, después de lo cual no muestra todo el mensaje de error.
¿Por qué está haciendo esto?
- Cambiar el color de fondo de edittext en android
- ¿Cómo mostrar varias líneas de texto con desplazamiento en android?
- Cómo hacer un cuadro edittext en un diálogo
- setCompoundDrawablesWithIntrinsicBounds no funciona correctamente
- Mostrar mensaje de validación
- Android Editar texto cubierto por el teclado en el segundo toque
- Android - Diálogo personalizado - No se puede obtener texto de EditText
- Teclado no se muestra cuando hago clic en edittextview en android?
- Haga que EditText crezca a medida que se llena
- Editar texto con la etiqueta dentro de android
- EditText añadido no es un TextInputEditText. Por favor, cambie a usar esa clase en su lugar
- Configurar android EditText para permitir decimales y negativos
- Android OS bug con algunos dispositivos que ejecutan Jelly Bean / 4.2.1 - TextView.setError (error CharSequence) Icono que falta
SetError
Establece el compuesto de la derecha dibujable del TextView en el icono de "error" y establece un mensaje de error que se mostrará en una ventana emergente cuando TextView tenga el foco. El icono y el mensaje de error se restablecerán a cero cuando cualquier evento clave cause cambios en el texto de TextView. Si el error es nulo, el mensaje de error y el icono se borrarán.
Así que cuando se cambia el texto, debe desaparecer. No sé por qué esto no sucede en su caso.
También debe ser borrado cuando el mensaje de error es nulo, por lo que un truco podría ser:
edittext = (EditText)findViewById(R.id.foo); // add below this line edittext.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) {} public void beforeTextChanged(CharSequence s, int start, int count, int after){} public void onTextChanged(CharSequence s, int start, int before, int count){ if(s != null && s.length() > 0 && edittext.getErrorMessage() != null) { edittext.setErrorMessage(null); } } });
@Andy Lobel: También me enfrenté a este problema y tengo que arreglarlo poniendo en blanco-espacios (10-12) al final del texto, por lo que el truncamiento sucedió sólo a los espacios en blanco 🙂 También, mi setError se veía mejor haciendo SetError texto y EditText alineados.
Otro caso: Me quedé atrapado en otro tema en el que se muestra un icono dibujable, pero ese mensaje flotante y su cuadro rectangular no aparecen.
Mi diseño contenía:
1) Nombre de usuario Editar texto
2) Contraseña Editar texto
3) Confirmar contraseña Editar texto
4) Botón de registro
Por lo tanto, estaba validando y mostrando el error en el momento de hacer clic en el botón de registro, pero se enteró de que el mensaje no pudo aparecer y sólo dibujable utilizado para venir y encontró ese mensaje aparecerá sólo cuando el Texto de edición se puede enfocar como:
De acuerdo con setError API Descripción: – Establece el compuesto de la derecha dibujable de TextView al icono de "error" y establece un mensaje de error que se mostrará en una ventana emergente 'cuando TextView tiene foco'.
Por lo tanto, el mensaje fue para UserName Editar texto, pero el último enfoque se mantuvo en Confirmar contraseña Editar texto, por lo que nunca apareció
La solución / ajuste para tal caso sería:
EditText.setFocusableInTouchMode(true); EditText.requestFocus(); EditText.setError("My Error Text");
Nota: Se escribió, por si acaso está atascado en este punto aunque otras soluciones podrían estar disponibles y lo siento por tantas ediciones ya que esta es la mejor solución posible que llegué por fin.
He pasado mucho tiempo intentando varias cosas para arreglar esto …
La solución fácil: – Asegúrese de que su texto de error es realmente muy corto
La solución que hace que todo funcione:
Cuando Android muestra el teclado, la vista con el texto de edición se "mueve" hacia arriba … y el texto de error se mueve con esto. El truncamiento normalmente ocurre como parte de esto. Usted puede arreglar esto fácilmente poniendo su disposición entera en un soporte de ScrollView … de esta manera Android puede mover su EditText arriba desplazándolo con la disposición entera – y entonces el mensaje de error será exhibido completamente. Pruébelo – realmente funciona.
PS: Me gusta que hayas publicado una captura de pantalla de tu problema. Hace las cosas mucho más fáciles.
Establezca inputType=""
valor para EditText
con el valor apropiado android:inputType="textEmailAddress"
y el popup desaparecerá cuando se ingrese el primer carácter.
Otra solución :
Adición de android:windowSoftInputMode="adjustResize"
en la etiqueta de actividad en AndroidManifest.xml
corrigió el problema para mí