En los dispositivos Android que usan teclados suaves, quiero evitar que aparezca la vista de edición de teclado a pantalla completa (que se muestra a continuación) cuando está en modo horizontal (es decir, quiero ver solo el teclado suave en sí y mi vista detrás de él).
Supongo que esto se puede lograr usando el setExtractViewShown(false)método activado InputMethodService, pero no puedo acceder a la instancia predeterminada de esto y no quiero implementar un método de entrada personalizado.

Editado para agregar: la vista a la que va la entrada no es una TextView(es una Viewcon una InputConnectionimplementación personalizada ), por android:imeOptions="flagNoExtractUi"lo que no funcionará aquí.

flagNoExtractUioIME_FLAG_NO_EXTRACT_UI. Sin embargo, en la documentación paraIME_FLAG_NO_EXTRACT_UI, que corresponde aflagNoExtractUi, establece que "se desaconseja el uso de este indicador y puede quedar obsoleto en el futuro", por lo queflagNoFullscreenes la opción recomendada.Respuestas:
I finalmente respondió a mi propia pregunta:
La interfaz de usuario de extracción (es decir, el modo de edición de pantalla completa) se puede desactivar en el punto en el que se conecta la conexión de entrada:
fuente
outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_EXTRACT_UI;Para hacer eso, navegue a la actividad xml y pegue
android:imeOptions="flagNoExtractUi"su código. ¿Pero dónde se debe pegar? Eche un vistazo al código de ejemplo de actividad xml y mire EditText:Si desea más opciones de personalización para el teclado, consulte http://developer.android.com/guide/topics/ui/controls/text.html
fuente
agregue la propiedad
android:imeOptions="flagNoExtractUi"a cada unoEditTexten suXMLarchivo.fuente
La respuesta anterior me ayudó a descubrir la solución para EditTexts añadidos dinámicamente:
fuente
Use
android:imeOptions="flagNoFullscreen"para lograr esa característica.fuente
IME_FLAG_NO_EXTRACT_UI, que corresponde aflagNoExtractUi, indica que "Se desaconseja el uso de este indicador y puede quedar obsoleto en el futuro", por lo queflagNoFullscreenes la opción recomendada.Además, si desea combinar varias imeOptions programáticamente, puede usar | sintaxis.
Por ejemplo, para deshabilitar la vista de edición de pantalla completa en horizontal y reemplazar la tecla "Siguiente" por "Aceptar" (ACTION_DONE) en el teclado, puede usar:
fuente
Si está modificando el IME directamente, puede evitar que muestre un ExtractedView anulando
onUpdateExtractingVisibility:fuente
Sé que es un poco tarde, pero para cualquier persona que todavía esté interesada, esta es mi solución: en mi caso, tenía una actividad horizontal que contenía un EditText en la parte superior y necesitaba implementar la función de autocompletar en esta actividad de búsqueda , que se superpuso el teclado causó un problema que el usuario no pudo ver el resultado de RecyclerView . Así que terminé teniendo este EditText en mi diseño:
¡Salud!
fuente
Mi solución:
fuente
Puedes usar :
en su texto de edición
fuente
Puede llamar para ocultar el teclado virtual y borrar el foco de la vista de búsqueda.
fuente