web-dev-qa-db-fra.com

Zone de texte masqué sous le clavier Web View Android

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

Sur mon site Web, il existe plusieurs formulaires avec type d’entrée = text ou textarea. J'ai un problème avec ceux quand ils sont au bas de la page!

1) Dans mon application iPhone, le clavier apparaîtra automatiquement et Poussez 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, la zone de texte reste au même endroit et est finalement masquée par mon clavier. Donc, la seule option que les utilisateurs ont est de taper "aveugle".

Comment puis-je réparer cela? Quelqu'un at-il rencontré ce problème?

43
andreas

Voici comment j'ai résolu le problème. Comme dit Venky, vous devez ajouter

Android:windowSoftInputMode="adjustResize"

à votre balise dans le fichier AndroidManifest.xml. Mais dans notre cas, cela ne suffisait pas. Assurez-vous de le faire aussi avec vos points de vue, vos vues Web, etc.

41
andreas

Je devenais fou rien ne fonctionne Android:windowSoftInputMode="adjustResize" peut aider mais assurez-vous que votre application n'est pas en plein écran.

Supprimer le plein écran de mon application a résolu le problème de redimensionnement de la présentation avec le clavier logiciel.

<item name="Android:windowFullscreen">false</item>
25
Sandro

Peu de choses que j'ai apprises en résolvant ce problème --- 1. Le style de thème ne doit pas contenir Fullscreen True 2. Ajouter Android: windowSoftInputMode = "adjustResize" 3. Supprimer Android: scrollbars = "none" est any ... À votre santé!

2
Surjeet

Dans mon cas, le succès obtenu par:

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

    Android:windowSoftInputMode="adjustResize"
    
  2. Utiliser un thème NON plein écran tel que ci-dessous:

    <style name="AppTheme" parent="Android:Theme.Black.NoTitleBar">
        <item name="Android:windowNoTitle">true</item>
        <item name="Android:windowActionBar">false</item>
        <item name="Android:windowFullscreen">false</item>
    </style>
    
  3. NE PAS utiliser ScrollView sur WebView.
1
Pawel

Ouais, j'ai eu le même problème avec Webview, le mien était avec l'entrée saisie sur modal. Textfield n'a pas "focalisé" au-dessus du clavier .. La solution a été de retarder l'appel de fonction. J'espère que quelqu'un trouvera 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);

}

0
Denis Solakovic

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

Android:windowSoftInputMode="adjustResize"

Est pas travaille quand vous êtes en immersif mode

0
unlimited101