Zone de texte cachée sous le clavier dans la vue Web Android

J’ai créé une application iPhone / Android simple, contenant une vue Web normale. Cette webview appelle mon site web.

Sur mon site, il existe plusieurs formulaires avec un type de saisie = text ou textarea. J’ai un problème avec ceux qui sont en bas de la page!

1) Dans mon application iPhone, le clavier apparaît automatiquement et pousse la zone de texte dans la zone visible de l’écran du téléphone. Donc, il n’y a rien à faire.

2) Mais dans mon application Android, le textbox restra au même endroit et sera éventuellement masqué par mon clavier. La seule option pour les utilisateurs est donc de taper “aveugle”.

Comment puis-je réparer cela? Quelqu’un d’autre a-t-il rencontré ce problème?

C’est comme ça que j’ai résolu le problème. Comme l’a dit Venky, il faut append

android:windowSoftInputMode="adjustResize" 

à votre balise dans le fichier AndroidManifest.xml. Mais dans notre cas, ce n’était pas suffisant. Assurez-vous de le faire aussi bien avec vos points de vue, vos vues Web, etc. Ensuite, nous avons finalement réussi.

Je android:windowSoftInputMode="adjustResize" fou rien ne fonctionne android:windowSoftInputMode="adjustResize" peut aider, mais assurez-vous d’avoir votre application pas en plein écran.

La suppression de plein écran pour mon application a permis de résoudre le problème de redimensionnement de la mise en page à l’aide du clavier.

 false 

Cela fonctionnerait:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

Peu de choses que j’ai apsockets en résolvant ce problème — 1. Le style du thème ne doit pas contenir plein écran True 2. Ajouter Android: windowSoftInputMode = “adjustResize” 3. Supprimer android: scrollbars = “none” est quelconque … À votre santé!

Ouais, avait le même problème en travaillant avec Webview, le mien était avec les entrées classées sur modal. Textfield n’a pas “mis au point” au-dessus du clavier. La solution consistait à retarder l’appel de fonction. J’espère que quelqu’un trouve cela utile.

  $("body").on("click", ".jstree-search-input", function () { setTimeout(function(){ androidScroll(); }, 500); }); 

Comme vous pouvez le voir, il est utilisé pour l’entrée Jstree …

  function androidScroll() { // Webview focus call (pushes the modal over keyboard) $('.control-sidebar-open ').scrollTop($('.control-sidebar-open ')[0].scrollHeight); 

}

Attention, à part les réponses suggérées

 android:windowSoftInputMode="adjustResize" 

Ne fonctionne pas lorsque vous êtes en mode immersif

Dans mon cas, le succès obtenu par:

  1. En ajoutant ci-dessous pour manifester, webview et fragment:

     android:windowSoftInputMode="adjustResize" 
  2. En utilisant le thème NON plein écran tel que ci-dessous:

      
  3. N’utilisez PAS ScrollView sur WebView.