Phonegap El teclado Android cubre los elementos de entrada desplazamiento está deshabilitado

He intentado muchas soluciones diferentes y nada es lo que quiero. Lo que quiero es que el teclado aparezca en la parte superior del contenido (manteniendo el contenido del mismo tamaño) mientras se puede desplazar a los elementos de entrada que están cubiertos por el teclado.

Cada solución que he intentado me dará uno o el otro, pero no ambos.

Soluciones que he probado:

  • Solución aquí . Añadir android: windowSoftInputMode = "adjustPan" y android: configChanges = "orientation | keyboardHidden" a la actividad principal en mi AndroidManifest.xml.
  • La solución anterior utilizando "adjustResize" en lugar de "adjustPan".
  • Solución aquí . Agregando a mi confix.xml.

El uso de adjustPan mantiene mis elementos del mismo tamaño, pero desactiva el desplazamiento. El uso de adjustResize redimensiona la página entera, haciendo todo en miniatura. Manteniendo la configuración predeterminada, sólo se cambia el tamaño del contenedor que contiene los elementos de entrada, pero el desplazamiento está habilitado.

Me las arreglé para encontrar el mismo problema (sin respuesta) aquí . Ellos fueron capaces de "arreglarlo" por el cambio de tamaño de su aplicación a 150% y desplácese al elemento de entrada cubierto, pero como dijeron que no es ideal.

Cualquier ayuda es apreciada.

8 Solutions collect form web for “Phonegap El teclado Android cubre los elementos de entrada desplazamiento está deshabilitado”

Para la mayoría de los casos en config.xml cambie la preferencia de pantalla completa a false. Que va a hacer el truco.

<preference name="fullscreen" value="false" /> 

Tengo la solución más eficiente para desplazarse a la entrada automáticamente y hacerla visible. Primero necesitas agregar el complemento de teclado iónico (funciona en cualquier proyecto cordova) porque el listlist de 'showkeyboard' no funciona ahora.

 cordova plugin add ionic-plugin-keyboard --save 

A continuación, en el controlador de eventos del evento 'keyboardshow' agregue el siguiente código:

 window.addEventListener('native.keyboardshow', function(e){ setTimeout(function() { document.activeElement.scrollIntoViewIfNeeded(); }, 100); }); 

PS: Sólo se admite en Android (Chrome) y Safari. :RE

Puede detectar el área de textarea o la input enfocada, luego espere un rato hasta que aparezca el teclado y finalmente desplácese hasta alcanzar la entrada enfocada.

 $("#textarea").focus(function(e) { var container = $('#container'), scrollTo = $('#textarea'); setTimeout((function() { container.animate({ scrollTop: scrollTo.offset().top - container.offset().top + container.scrollTop() }); }), 500); }); 

Cuando el teclado está oculto, la zona de textarea mantiene enfocada, por lo que si se hace clic de nuevo el teclado se mostrará y el contenedor tendrá que desplazarse de nuevo para mostrar la entrada

 $("#textarea").click(function(e) { e.stopPropagation(); var container = $('#container'), //container element to be scrolled, contains input scrollTo = $('#textarea'); setTimeout((function() { container.animate({ scrollTop: scrollTo.offset().top - container.offset().top + container.scrollTop() }); }), 500); }); 

Espero que esto ayude, aplausos!

He añadido un detector de eventos para el evento de teclado y desplazado a la entrada sólo si estaba fuera de la pantalla.

Para mi caso sólo quería desplazarme cuando el teclado se estaba mostrando por primera vez, y sólo si el elemento de entrada estaba fuera de pantalla.

 document.addEventListener('showkeyboard', onKeyboardShow, false); function onKeyboardShow(e) { setTimeout(function() { e.target.activeElement.scrollIntoViewIfNeeded() }, 500) //needed timeout to wait for viewport to resize } 

Para obtener el showkeyboard evento de fuego que necesitaba tener lo siguiente en mi AndroidManifest.xml

  android:windowSoftInputMode="adjustResize" 

Resolví el problema. Tengo una consulta de medios en mi CSS donde cambia el tamaño de ciertos elementos para tamaños de pantalla más pequeños. La edición de esa consulta solucionó mi problema.

Tuve el mismo problema para la salida del proyecto android y en mi situación los elementos de entrada no se mueve hacia arriba el teclado. Y después de una noche de toma de búsqueda ( incluidos los cambios de configuración y otros ) me encontré con que en mi angularjs Córdoba proyecto

 StatusBar.overlaysWebView(true); StatusBar.hide(); 

Líneas que están en mi controlador que causan ese problema molesto. Y yo estaba usando esas líneas para problemas ios statusbar ahora tomé los que en una condición de si y el problema es fijo.

 if( device.platform=="iOS") { StatusBar.overlaysWebView(true); StatusBar.hide(); } 

Estoy usando el complemento de Cordova 'ionic-plugin-keyboard' y escucho los eventos 'native.keyboardshow' y 'native.keyboardhide' para cambiar el tamaño del elemento contenedor HTML de mi formulario:

  window.addEventListener('native.keyboardshow', function (e) { container.style.bottom = e.keyboardHeight + "px"; }); window.addEventListener('native.keyboardhide', function () { container.style.bottom = null; }); 

Esto resulta en los campos de entrada apropiados para desplazarse hacia la vista (también cuando se hace una pestaña hacia atrás y hacia adelante entre los campos.

Si usted ha hecho correctamente el proyecto como dice la documentación de Córdoba, no sucederá.

Puede ser que está utilizando una biblioteca de desplazamiento como iScroll?

  • ScrollTop no funciona en móviles Android
  • Phonegap - navigator.connection.type no definido
  • Cordova build -release Android Unsigned apk
  • ¿Cuál es la diferencia entre Apache Cordova y PhoneGap?
  • Error cromo desconocido: -6
  • Phonegap Geolocalización sin WiFi y red móvil
  • Cordova Ionic Keyboard plugin deshabilitar completamente en "Init"
  • ¿Cómo pongo mi aplicación cordova en la tienda de juegos android?
  • Permisos de aplicaciones en Android Marshmallow en PhoneGap
  • Cómo hacer PhoneGap - Android configurar el proceso como un paso de construir?
  • Phonegap Error - "No se puede leer la propiedad 'captura' de undefined" en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.