Empêcher la refusion / redimensionnement du document lorsque le clavier Android ouvre

Ceci est pour un WebApp HTML5 / Javascript, pas une application Android native.

Comment puis-je empêcher le navigateur / le DOM de redimensionner mon contenu (qui est sensible, surtout vw / vh pour les tailles, etc.), lorsque le clavier mobile Android s'ouvre? Ce qui se passe, c'est que le contenu, en particulier la taille des polices, change une fois que le clavier est ouvert (par exemple, dans les champs de saisie).

  • RTP sur Android MediaPlayer
  • Android: Que faire si les performances de ListView ne sont toujours pas suffisantes?
  • Android: comment supprimer une ligne d'un ListView avec un bouton de suppression dans la ligne
  • Qu'arrive-t-il aux données existantes des préférences des utilisateurs Android lorsque la structure des préférences change dans une nouvelle version?
  • Firebase - Email de vérification de courrier électronique ne fonctionne pas - Une erreur interne s'est produite.
  • Android AutoCompleteTextView avec filtrage personnalisé de l'adaptateur ne fonctionne pas
  • J'ai déjà configuré

    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 

    Ce que je veux atteindre, c'est que le clavier joue le rôle de superposition et que le contenu en dessous devient mobile. Donc, fondamentalement, quel android:windowSoftInputMode ferait dans un manifeste Android.

    J'ai également essayé d'écouter l'événement de redimensionnement de la fenêtre et de l'empêcher, lorsque le montant de redimensionnement est dans une certaine plage (voir cette réponse à une autre question). Mais ce qui se passe ici, c'est que le clavier s'ouvre et, immédiatement après, se referme. (*)

    Donc, mes idées de base sont:

    • Empêcher le navigateur de calculer les nouvelles tailles (comme s'il n'y avait pas de redimensionnement)
    • Configurez le clavier pour agir comme une superposition, pas un élément individuel redimensionnant la fenêtre
    • Gardez le clavier ouvert dans ma méthode de redimensionnement prévenu déjà testé (*)

    Mais je ne peux pas trouver une solution de travail pour ces derniers.

    One Solution collect form web for “Empêcher la refusion / redimensionnement du document lorsque le clavier Android ouvre”

    Ok, c'est une solution corrective pour l'application html5 (navigateur).

     var isKeyboardOpen = false; //Override onresize event if you have it already just insert code // also you can check id of element or any other parameters if ( document.activeElement.tagName == "INPUT" || document.activeElement.tagName == "input" ) { // regular onresize } else{ // avoid resize } 

    // Pour vérifier est-ce que le clavier est ouvert, utilisez ce code

    Window.addEventListener ('native.showkeyboard', keyboardShowHandler);

     window.addEventListener('native.hidekeyboard', keyboardHideHandler); function keyboardShowHandler(e){ isKeyboardOpen = true; //always know status } function keyboardHideHandler(e){ isKeyboardOpen = false; } 

    Essayez initialement d'empêcher en réglant le drapeau:

     var object = document.getElementById("IwillOpenKeyboardOnMobile") object.addEventListener("focus", ONFOCUSELEMENT); function ONFOCUSELEMENT() { isKeyboardOpen = true; } // opposite event is blur 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.